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


.bda-intro { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,2fr) minmax(0,1fr); align-items:center; gap:24px; margin:24px 0 36px; padding:24px; border:1px solid var(--pga-border); background:var(--pga-card-background); }
.bda-award-image { display:block; width:100%; max-height:300px; object-fit:contain; }
.bda-content { text-align:center; }
.bda-content h1 { margin:0 0 18px; font-family:"Times New Roman",serif; }
.bda-memorial { font-size:1.2rem; font-family:"Times New Roman",serif; }
.bda-description { margin:22px 0 0; font-family:"French Script MT", "Brush Script MT", cursive; font-size:clamp(1.65rem,2.8vw,2.4rem); line-height:1.3; }
.bda-winners { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:32px 28px; }
.bda-winner { min-width:0; margin:0; text-align:center; }
.bda-photo-link { display:flex; height:280px; align-items:flex-end; justify-content:center; padding:0; }
.bda-photo-link img { display:block; max-width:100%; max-height:100%; object-fit:contain; box-shadow:var(--pga-shadow); }
.bda-winner figcaption { margin-top:4px; font-size:1.1rem; }
.bda-winner figcaption a { display:block; }
.bda-intro { border-radius:8px; }
.bda-history h2 { text-align:center; font-weight:bold; font-size:calc(1.5em + 2pt); }
@media (max-width:800px) {
    .bda-intro { gap:16px; padding:18px; }
    .bda-winners { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:560px) {
    .bda-intro { grid-template-columns:minmax(0,1fr); }
    .bda-award-image { max-height:220px; }
    .bda-winners { grid-template-columns:minmax(0,1fr); }
    .bda-photo-link { height:auto; }
    .bda-photo-link img { max-height:360px; }
}

/* Public Daily Summary: intrinsic equal columns, with a reserved historical third slot. */
.ds-page h1,.ds-round-label,.ds-legend { text-align:center; }
.pga-page.ds-page { width:1360px; max-width:100%; }
.ds-page .pga-header-shell { width:100%; max-width:none; }
.ds-round-label { font-size:calc(1rem + 2pt); }
.ds-nav label { font-size:20px; font-weight:bold; }
.ds-nav select { font-size:20px; min-width:110px; min-height:44px; padding:6px 12px; }

.ds-nav { display:flex; flex-direction:column; align-items:center; gap:12px; margin:16px auto; }
.ds-year-nav,.ds-round-nav { display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:8px; max-width:100%; }
.ds-nav form { display:flex; align-items:center; gap:8px; margin:0; }
.ds-nav .pga-nav-button { text-align:center; background:var(--pga-green); color:white; }
.ds-page .ds-nav .pga-nav-button:hover,.ds-page .ds-nav .pga-nav-button:focus-visible { background:var(--pga-green-dark); color:white; border-color:var(--pga-green-dark); }
.ds-page .ds-nav .pga-nav-button:focus-visible { outline:3px solid var(--pga-gold); outline-offset:3px; }
.ds-page .ds-nav .pga-nav-button[aria-current="page"] { background:var(--pga-green-dark); color:var(--pga-gold); outline:3px solid var(--pga-gold); outline-offset:1px; }
.ds-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); width:100%; gap:20px 16px; margin:20px auto; align-items:stretch; }
.ds-category { min-width:0; border:1px solid var(--pga-border); border-radius:6px; padding:10px; background:var(--pga-card-background); }
.ds-category h2 { text-align:center; font-size:18px; margin:0 0 10px; }
.ds-table-scroll { overflow-x:auto; }
.ds-table th,.ds-table td { padding:5px 7px; }
.ds-table td:first-child,.ds-table th:first-child { white-space:normal; overflow-wrap:anywhere; }
.ds-page .ds-winner { background:#dceefa; color:#173d56; }
.ds-table .ds-hat,.ds-hat { background:#f5c6c6; color:#651b1b; }
.ds-note { font-size:13px; color:var(--pga-text-light); margin:10px 0 0; }
.ds-table .ds-empty,.ds-empty { text-align:center; }
.ds-legend { font-size:13px; }
.ds-legend span { padding:3px 5px; }
@media (min-width:1200px) {
    .ds-skins > .ds-table-scroll td:first-child { white-space:nowrap; overflow-wrap:normal; }
}
@media (max-width:1000px) {
    .ds-grid { width:100%; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
    .ds-category { padding:6px; }
    .ds-table th,.ds-table td { padding:4px; }
}
@media (max-width:760px) {
    .ds-grid { grid-template-columns:minmax(0,1fr); max-width:440px; }
    .ds-spacer { display:none; }
    .ds-category { padding:10px; }
}

: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;

}


/* Daily Info: DOM order remains the phone reading order at every width. */
.di-page { overflow-wrap:anywhere; }
.di-selectors { display:flex; flex-wrap:wrap; gap:16px; margin-bottom:20px; }
.di-selectors form { display:flex; flex-wrap:wrap; align-items:center; gap:8px; min-width:0; max-width:100%; }
.di-selectors label { font-weight:bold; }
.di-selectors select { min-width:0; max-width:100%; flex:1; }
.di-selectors select,.di-selectors button { font:inherit; padding:8px; border:1px solid var(--pga-border); border-radius:5px; }
.di-content { display:grid; grid-template-columns:minmax(0,1fr); gap:16px; }
.di-content .pga-panel { margin:0; min-width:0; }
.di-content h2,.di-content h3 { margin-top:0; }
.di-heading h3 { font-size:1.3rem; }
.di-schedule-items { list-style:none; margin:0; padding:0; }
.di-schedule-items li { display:flex; flex-wrap:wrap; gap:8px 16px; padding:8px 0; border-bottom:1px solid var(--pga-border); }
.di-schedule-items time { font-weight:bold; }
.di-schedule-items span { min-width:0; white-space:pre-wrap; }
.di-first-tee { font-size:1.1rem; }
.di-conditions:empty { display:none; }
.di-conditions:not(:has(> :not([hidden]))) { display:none; }
.di-conditions { display:grid; gap:16px; grid-template-columns:minmax(0,1fr); }
.di-group-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr)); gap:16px; }
.di-members { list-style:none; padding:0; margin:0; }
.di-members li { padding:7px 0; }
.di-badge { display:inline-block; font-size:.8rem; border:1px solid currentColor; border-radius:4px; padding:1px 5px; margin-left:4px; }
.di-group.di-personal { border:3px solid #386a31; background:#f1f8ec; }
.di-your-group { font-size:.9rem; }
.di-group-detail,.di-help { color:#4e554b; }
.di-tv-control { margin-bottom:14px; }
.di-tv-control:not([hidden]) { display:block; }
.di-unassigned { margin-top:16px !important; }
.di-tees table { width:100%; }
@media(min-width:900px) {
 .di-content { grid-template-columns:minmax(0,2fr) minmax(0,1fr); }
 .di-heading,.di-conditions,.di-foursomes,.di-tees { grid-column:1/-1; }
 .di-conditions { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .di-tees table { max-width:650px; }
}
@media(max-width:600px) {
 .di-selectors { display:grid; }
 .di-selectors form { display:grid; grid-template-columns:minmax(0,1fr) auto; }
 .di-selectors label { grid-column:1/-1; }
}

.pga-account-panel { overflow-wrap:anywhere; }
.pga-account-panel select { min-width:0; max-width:100%; }

.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-login-panel select,
.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: 1400px; width: 98%; margin: auto; }
/* Match the 1312px scorecard plus the page's 24px side padding. */
.ys-page.ps-page { max-width:1360px; }
.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; width:1312px; min-width:1312px; }
.ps-col-date { width:105px; }
.ps-col-tee { width:110px; }
.ps-col-rating { width:100px; }
.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:center; min-width:0; }
.pga-brand { white-space:normal; width:max-content; max-width:100%; }
.pga-brand-logo { display:block; width:auto; height:202.5px; max-width:100%; object-fit:contain; margin:0 auto; }
.home-intro { display:grid; --home-intro-height:480px; grid-template-columns:minmax(0,65fr) minmax(0,35fr); gap:24px; align-items:start; margin:20px 0; }
.home-main-photo { min-width:0; height:var(--home-intro-height); 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:none; object-fit:cover; object-position:center center; border-radius:8px; }
.home-history { height:var(--home-intro-height); overflow:auto; border:1px solid var(--pga-border); border-radius:8px; padding:18px; background:white; overflow-wrap:anywhere; }
.home-history h2 { font-size:calc(1.5em + 2pt); margin:0 0 12px; font-family:"Lucida Handwriting", "Brush Script MT", cursive; text-align:center; }
.home-history p { font-size:calc(1em + 2pt); 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:900px) {
    .home-history { height:auto; overflow:visible; }
    .home-intro { grid-template-columns:minmax(0,1fr); gap:16px; }
    .pga-brand-logo { height:157.5px; }
    .home-main-photo { height:auto; }
    .home-main-photo > a { height:auto; }
    .home-main-photo .home-photo { height:auto; max-height:none; }
}

.media-tag-management td { white-space:normal; vertical-align:top; }
.media-tag-management small { display:block; white-space:nowrap; }

/* Equal side columns keep the logo centered on the entire header. */
.pga-header-shell { display:grid; grid-template-columns:minmax(0,1fr) auto minmax(0,1fr); align-items:center; gap:24px; }
.pga-header-right { min-width:0; position:relative; }
.pga-nav-menu { max-width:100%; }
.pga-nav-menu summary { display:grid; grid-template-columns:minmax(0,1fr) 1em; align-items:center; gap:8px; cursor:pointer; list-style:none; }
.pga-nav-menu-label { text-align:center; min-width:0; }
.pga-nav-menu summary::-webkit-details-marker { display:none; }
.pga-nav-dropdown { position:absolute; z-index:100; right:0; top:calc(100% + 4px); width:230px; max-width:calc(100vw - 64px); max-height:65vh; overflow:auto; padding:8px; border:1px solid var(--pga-gold); border-radius:8px; background:var(--pga-green-dark); box-shadow:var(--pga-shadow); }
.pga-nav-dropdown a { display:block; padding:10px 12px; color:white; text-decoration:none; border-radius:4px; }
.pga-nav-dropdown a:hover,.pga-nav-dropdown a:focus-visible,.pga-nav-dropdown a.active { background:var(--pga-green); outline:2px solid var(--pga-gold); }
.pga-nav-dropdown hr { border:0; border-top:1px solid #ffffff66; margin:5px 0; }
.pga-nav-menu summary:focus-visible { outline:2px solid var(--pga-gold); outline-offset:3px; }
@media(max-width:1000px) {
    .pga-header-shell { grid-template-columns:minmax(0,1fr); gap:14px; }
    .pga-header-left { justify-content:center; padding:0; }
    .pga-brand { text-align:center; }
    .pga-header-right { align-items:center; }
    .pga-header-right .pga-nav { justify-content:center; }
    .pga-header-right > .pga-nav-button,.pga-header-right > .pga-nav-menu { width:190px; max-width:100%; box-sizing:border-box; }
    .pga-header-right > .pga-nav-button { text-align:center; }
    .pga-header-right > .pga-nav-menu > summary { width:100%; box-sizing:border-box; grid-template-columns:1em minmax(0,1fr) 1em; }
    .pga-header-right > .pga-nav-menu .pga-nav-menu-label { grid-column:2; white-space:normal; }
    .pga-nav-dropdown { right:50%; transform:translateX(50%); }
}

/* Balanced photo slots keep the information centered even without images. */
.hoi-title { text-align:center; font-size:clamp(2rem,4vw,3rem); font-weight:700; color:var(--pga-green-dark); }
.hoi-empty { text-align:center; }
.hoi-card { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); align-items:center; gap:24px; padding:24px; margin:24px 0; border:1px solid var(--pga-border); border-radius:8px; background:var(--pga-card-background); }
.hoi-picture { min-width:0; min-height:1px; display:flex; align-items:center; justify-content:center; }
.hoi-picture img { display:block; max-width:100%; max-height:360px; width:auto; height:auto; object-fit:contain; border-radius:8px; }
.hoi-information { min-width:0; text-align:center; font-weight:700; font-size:1.2rem; overflow-wrap:anywhere; }
.hoi-information p { margin:12px 0; }
.hoi-information a { font-weight:700; }
@media (max-width:800px) {
    .hoi-card { gap:12px; padding:16px; }
    .hoi-information { font-size:1rem; }
}
@media (max-width:560px) {
    .hoi-card { grid-template-columns:minmax(0,1fr); }
    .hoi-picture img { max-height:300px; }
}

/* Trip details, photograph captions and all-time summaries. */
.gt-location { width:auto; max-width:100%; margin-bottom:20px; }
.gt-location th { text-align:left; }
.gt-location td,.gt-notes { white-space:normal; overflow-wrap:anywhere; }
.home-card-caption { display:block; width:100%; box-sizing:border-box; padding:3px 8px 0; text-align:right; font-size:11px; font-weight:normal; color:#647267; }
.ats-filter { display:flex; align-items:center; flex-wrap:wrap; gap:10px; margin:20px 0; }
.ats-filter select { padding:7px; }
.ats-totals { width:auto; max-width:100%; }
.ats-totals th { text-align:left; }
.ats-totals td { text-align:right; }
.ats-note { font-size:.85rem; }
/* Width equals the displayed column groups, independent of the page width. */
.ats-page {
    --ats-name-width:210px;
    --ats-year-width:65px;
    --ats-hole-width:75px;
    --ats-award-width:65px;
    --ats-score-width:70px;
    --ats-table-width:calc(var(--ats-name-width) + 4 * var(--ats-year-width) + 6 * var(--ats-hole-width) + 5 * var(--ats-award-width) + 3 * var(--ats-score-width));
}
.ats-scroll { max-height:65vh; width:fit-content; max-width:100%; }
.ats-eagles-scroll { width:fit-content; max-width:100%; }
.ats-eagles { width:1320px; }
.ats-eagles th:nth-child(-n+2),.ats-eagles td:nth-child(-n+2) { text-align:left; }
.ats-players { table-layout:fixed; width:var(--ats-table-width); }
.ats-players .ats-name { width:var(--ats-name-width); }
.ats-players .ats-year { width:var(--ats-year-width); }
.ats-players .ats-hole { width:var(--ats-hole-width); }
.ats-players .ats-award { width:var(--ats-award-width); }
.ats-players .ats-score { width:var(--ats-score-width); }
.ats-players th,.ats-players td { text-align:center; white-space:nowrap; }
.ats-players th:first-child,.ats-players td:first-child { position:sticky; left:0; z-index:2; text-align:left; background:#fff; box-shadow:1px 0 0 #ccc; }
.ats-players thead th { position:sticky; top:0; z-index:3; background:var(--pga-green); color:#fff; }
.ats-players thead th:first-child { z-index:4; background:var(--pga-green); }
.ats-players th button { color:inherit; }
.ats-eagles td:nth-child(n+3) { text-align:center; }

/* Summary layout updates: independent first results row and aligned all-time content. */
.ds-first-row { grid-template-columns:repeat(3,minmax(0,1fr)) minmax(0,1.4fr); }
.ds-first-row .ds-spacer { grid-column:span 2; }
@media (max-width:1000px) and (min-width:761px) {
    .ds-first-row { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:760px) {
    .ds-first-row { grid-template-columns:minmax(0,1fr); }
}
.pga-page.ats-page { width:calc(var(--ats-table-width) + 48px); max-width:100%; }
.ats-totals th,.ats-totals td { padding:3px 8px; }
.ats-eagles-scroll { max-height:none; }
/* Tournament configuration and progressive competition tables. */
.tc-scroll { max-width:100%; overflow-x:auto; margin:1rem 0; }
.tc-table { border-collapse:collapse; width:100%; font-size:1rem; }
.tc-table th,.tc-table td { padding:.65rem .8rem; border:1px solid #c9d3cc; text-align:left; white-space:nowrap; }
.tc-table th { background:#173d2a; color:#fff; }
.tc-table tbody tr:nth-child(even) { background:#f1f5f1; }
.tc-table input[type=text] { min-width:12rem; }
.tc-table input[type=number] { width:4.5rem; }
.tc-table input,.tc-table select { max-width:none; }
.tc-table td[rowspan] { vertical-align:middle; }
.tc-table button { white-space:nowrap; }
.tc-progression { display:flex; align-items:center; gap:1.25rem; width:max-content; min-width:100%; padding:1rem .25rem; }
.tc-stage { flex:0 0 auto; }
.tc-stage h4 { margin:0 0 .6rem; }
.tc-stage .tc-table { width:auto; }
.tc-advance td { font-weight:600; }
.tc-table tbody tr.tc-winner,.tc-winner { background:#fff1bc; border-radius:.4rem; }
.tc-stage.tc-winner { padding:1rem; }
.tc-round-checks { display:flex; gap:.6rem; flex-wrap:wrap; min-width:11rem; }
.tc-round-checks label { display:inline-flex; align-items:center; gap:.2rem; white-space:nowrap; }
.tc-year-nav { display:flex; flex-wrap:wrap; align-items:center; gap:1.25rem; margin:1rem 0; }
#competition-summary,#tournament { scroll-margin-top:1rem; margin-top:2rem; }
#tournament-form > button { margin-top:1rem; }
@media(max-width:600px) { .tc-table th,.tc-table td { padding:.5rem; } .tc-progression { gap:.8rem; } }
.tc-scroll-hint { display:none; }
@media(max-width:600px) { .tc-scroll-hint { display:block; font-size:.9rem; } }
.tc-table input:not([type=checkbox]),.tc-table select,.tc-year-nav select { font:inherit; padding:.4rem; border:1px solid var(--pga-border); border-radius:4px; }
.tc-table th { background:var(--pga-green-dark); }

/* v18: compact public competitions, entry-aware links and Horse standings. */
#brackets,#competition-winners { scroll-margin-top:1rem; margin-top:1.5rem; }
#brackets .tc-table th,#brackets .tc-table td,
#competition-summary .tc-table th,#competition-summary .tc-table td,
#competition-winners .tc-table th,#competition-winners .tc-table td { padding:.25rem .6rem; }
#brackets .tc-scroll,#competition-summary .tc-scroll,#competition-winners .tc-scroll { margin:.4rem 0 .8rem; }
.tc-bookmarks { display:flex; flex-wrap:wrap; gap:.5rem; }
.tc-year-nav { gap:.6rem; margin:.6rem 0; }
.tc-button { padding:.25rem .65rem; font-size:.95rem; line-height:1.45; white-space:nowrap; }
.tc-button-gold { background:#fff1bc; border-color:var(--pga-gold); color:#493a0a; }
.tc-button-blue { background:#dceefa; border-color:#80aac5; color:#173d56; }
.tc-table .tc-score,.tc-stage h4 { text-align:center; }
.tc-table .tc-golfer { text-align:left; }
.tc-progression { gap:1rem; padding:.35rem .15rem; }
.tc-stage h4 { margin:0 0 .3rem; }
.tc-stage .tc-table { border-collapse:separate; border-spacing:0; border-radius:8px; overflow:hidden; }
.tc-stage .tc-table td,.tc-stage .tc-table th { border-width:0 1px 1px 0; }
.tc-stage.tc-winner { padding:.6rem .8rem; }
.tc-stage.tc-winner p { margin:.3rem 0; }
.tc-contest-title { font-size:1.45rem; margin:1rem 0 .3rem; }
.tc-other-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.4rem; align-items:start; }
.tc-other-contest { min-width:0; }
.tc-rounded { border-radius:8px; border:1px solid var(--pga-border); }
.tc-rounded .tc-table { border-style:hidden; }
.tc-winners-table th,.tc-winners-table td { text-align:center; }
.tc-star { color:#d49c00; font-size:1.2em; vertical-align:baseline; }
.tc-winner-name { white-space:nowrap; }
.tc-jockeys td { white-space:normal; min-width:13rem; line-height:1.5; }
.tc-jockeys th { width:10rem; }
.tc-pending { font-size:.9rem; margin:.35rem 0; max-width:20rem; }
.tc-sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
#tournament-editor :disabled { opacity:.5; cursor:not-allowed; }
@media(max-width:800px) { .tc-other-grid { grid-template-columns:minmax(0,1fr); gap:.3rem; } }

/* Trip Setup: compact schedule bulk editor. */
.schedule-heading,.schedule-row { display:grid; grid-template-columns:150px 135px 75px minmax(160px,1fr) 110px; gap:8px; align-items:center; }
.schedule-heading { font-weight:700; padding:4px 0; }
.schedule-row { border-top:1px solid var(--pga-border); padding:5px 0; }
.schedule-row label { min-width:0; }
.schedule-row label>span { display:none; }
.schedule-row input { box-sizing:border-box; width:100%; min-width:0; padding:5px; border:1px solid var(--pga-border); border-radius:3px; font:inherit; }
.schedule-row .trip-button { padding:6px 8px; white-space:nowrap; }
#schedule-status:empty { display:none; }
@media(max-width:750px) {
 .schedule-heading { display:none; }
 .schedule-row { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .schedule-row label>span { display:block; font-size:12px; }
 .schedule-row label:nth-child(3) { width:75px; }
 .schedule-row label:nth-child(4) { grid-column:1/-1; grid-row:3; }
 .schedule-row .trip-button { grid-column:2; grid-row:2; justify-self:end; align-self:end; }
}

/* Daily Info directions and compact local weather. */
.di-map-links { grid-column:1/-1; display:flex; flex-wrap:wrap; gap:10px 20px; }
.di-map-links:empty { display:none; }
#di-map iframe { width:100%; height:350px; min-width:200px; border:0; }
.di-weather-table { width:100%; }
.di-weather-table th,.di-weather-table td { padding:5px 6px; font-size:0.95rem; }
.di-weather-table td:nth-child(2) { white-space:nowrap; }
.di-weather-table img { vertical-align:middle; margin-right:4px; }

/* Compact public Daily Info: map/weather logic is unchanged. */
.di-page { max-width:1600px; padding:10px 14px; }
.di-page-title { font-size:1rem; margin:4px 0; text-align:center; }
.di-selectors { gap:6px 14px; margin:6px 0; }
.di-selectors select { padding:3px; font-size:.9rem; }
.di-heading { text-align:center; padding:0; }
.di-heading h2 { font-size:1.2rem; margin:0 0 3px; }
.di-heading h3 { font-size:1.05rem; margin:0; }
.di-content { gap:8px; }
.di-content .pga-panel { padding:8px; }
.di-content h2 { font-size:1rem; margin:0 0 6px; }
.di-content h3 { font-size:.95rem; margin:0 0 6px; }
.di-left { display:flex; flex-direction:column; gap:8px; min-width:0; }
.di-address { flex:1; display:flex; flex-direction:column; }
.di-address p { margin:0 0 8px; font-size:.9rem; }
.di-map-links { display:flex; flex-wrap:nowrap; gap:4px; margin-top:auto; }
.di-map-links a { flex:1; text-align:center; font-size:.8rem; border:1px solid var(--pga-border); border-radius:4px; padding:5px 2px; text-decoration:none; white-space:nowrap; }
.di-schedule-items li { display:grid; grid-template-columns:4.8em minmax(0,1fr); gap:6px; padding:4px 0; font-size:.85rem; }
.di-schedule-items time { font-weight:normal; }
.di-conditions { gap:8px; }
#di-map iframe { display:block; height:290px; }
.di-weather-table th,.di-weather-table td { padding:3px 2px; font-size:.76rem; }
.di-weather-table th:first-child { text-align:center; }
.di-weather-table img { width:20px; height:20px; margin-right:2px; }
#di-weather .di-help { font-size:.7rem; margin:0 0 5px; }
.di-tees th,.di-tees td { padding:4px 5px; font-size:.85rem; }
.di-tees thead th { background:#eee; color:#000; }
.di-tees tbody th,.di-tees tbody td { background:inherit; color:inherit; }
.di-foursomes { min-width:0; display:flex; flex-direction:column; }
.di-foursomes-heading { display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.di-tv-control:not([hidden]) { display:inline-flex; align-items:center; margin:0 0 6px; font-size:.8rem; }
.di-group-grid { gap:8px; flex:1; }
.di-members li { padding:3px 0; font-size:.85rem; }
.di-badge { padding:0 3px; font-size:.7rem; }
.se-starting-holes { display:flex; align-items:center; flex-wrap:wrap; gap:8px 16px; margin:10px 0; }
.se-starting-holes h3 { margin:0; }
.se-starting-holes input { width:4em; }
@media(min-width:1100px) {
 .di-content { grid-template-columns:minmax(0,1fr) minmax(0,4fr) minmax(0,1fr); align-items:stretch; }
 .di-heading { grid-column:1/-1; }
 .di-left { grid-column:1; grid-row:2; }
 .di-conditions { display:contents; }
 #di-map { grid-column:2; grid-row:2; display:flex; flex-direction:column; }
 #di-map iframe { flex:1; min-height:260px; }
 #di-weather { grid-column:3; grid-row:2; }
 .di-tees { grid-column:1; grid-row:3; }
 .di-foursomes { grid-column:2/4; grid-row:3; }
 .di-group-grid { grid-template-columns:repeat(var(--di-groups),minmax(0,1fr)); }
}
@media(max-width:1099px) {
 .di-content { grid-template-columns:minmax(0,1fr); }
 .di-content > * { grid-column:1; }
 .di-conditions { grid-template-columns:minmax(0,1fr); }
}

/* Meeting emphasis changes no schedule column sizing. */
.di-schedule-emphasis { color:#b00000; font-weight:700; }
.home-meeting { color:#b00000; font-weight:700; font-size:clamp(1.4rem,3vw,2rem); text-align:center; }
.di-address-desktop { display:block; text-align:left; margin-bottom:8px; font-size:.9rem; overflow-wrap:anywhere; }
/* My Week shares Daily Info content styles without its map/weather layout. */
.pga-app-body { margin:0; background:#2F6B3C; }
.pga-app-home { width:100%; max-width:600px; margin:0 auto; padding:16px; box-sizing:border-box; }
.pga-app-logo { display:block; width:100%; height:auto; margin-bottom:24px; }
.pga-app-links { display:grid; gap:18px; }
.pga-app-links a,.pga-app-links button { display:block; box-sizing:border-box; width:100%; padding:20px 12px; font:700 clamp(1.5rem,6vw,2rem)/1.2 Arial,sans-serif; text-align:center; text-decoration:none; border:2px solid white; border-radius:8px; color:white; background:var(--pga-green-dark); }
.pga-app-links button:disabled { opacity:.6; cursor:default; }
.pga-app-links a:focus-visible { outline:3px solid var(--pga-gold); outline-offset:4px; }
.mw-page { max-width:1600px; padding:12px; overflow-wrap:anywhere; }
.mw-page .pga-header-shell { max-width:none; width:100%; }
.mw-page h1 { font-size:1.5rem; margin:10px 0; text-align:center; }
.mw-page h2 { font-size:1rem; margin:0 0 6px; }
.mw-page h3 { font-size:.95rem; margin:0 0 5px; }
.mw-page p { margin:0 0 6px; }
.mw-page .pga-panel { padding:8px; margin:0; min-width:0; }
.mw-top-cards { display:grid; gap:10px; margin:10px 0; }
.mw-top-cards .pga-panel { display:flex; flex-direction:column; }
.mw-day-heading { text-align:center; font-size:calc(1.5rem - 3pt); font-weight:700; color:#000; line-height:1.2; }
.mw-mobile-logo { display:block; }
.mw-mobile-logo img { display:block; width:100%; height:auto; }
.mw-mobile-nav { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:6px; width:100%; margin:0 0 10px; }
.mw-mobile-nav a,.mw-mobile-nav button,.di-mobile-nav a,.di-mobile-nav button { font:inherit; font-size:.85rem; padding:6px 8px; border:1px solid #2F6B3C; border-radius:4px; background:#2F6B3C; color:#fff; text-align:center; text-decoration:none; white-space:nowrap; }
.mw-mobile-nav button:disabled,.di-mobile-nav button:disabled { opacity:.55; cursor:default; }
.di-content .di-heading h2 { font-size:calc(1rem + 4pt); }
.di-content .di-heading h3 { font-size:calc(.95rem + 4pt); }
.di-mobile-home { display:none; }
@media(max-width:767px) {
 .di-site-header { display:none; }
 .di-mobile-home { display:block; }
 .di-mobile-nav { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px; width:100%; margin:0 0 10px; }
}
.mw-site-header { display:none; }
.mw-round + .mw-round { border-top:2px solid var(--pga-border); padding-top:14px; margin-top:8px; }
.mw-map-links { display:flex; gap:6px; width:100%; margin-top:auto; }
.mw-map-links a { flex:1 1 0; min-width:0; text-align:center; background:#2F6B3C; color:white; padding:5px 12px; border-radius:4px; text-decoration:none; }
.mw-rounds { display:grid; gap:10px; }
.mw-round { display:grid; gap:6px; min-width:0; }
.mw-round .di-tees { grid-column:auto; grid-row:auto; }
.mw-round .ys-table th,.mw-round .ys-table td { white-space:normal; padding:3px; font-size:.8rem; }
.mw-round .di-schedule-items li { font-size:.85rem; }
.mw-round .mw-skipped { display:none; }
.mw-departure dl { margin:0; display:grid; grid-template-columns:auto 1fr; gap:4px 12px; }
.mw-departure dd { margin:0; }
@media(min-width:1000px) {
 .mw-top-cards { grid-template-columns:repeat(4,minmax(0,1fr)); }
 .mw-site-header { display:block; }
 .mw-mobile-logo,.mw-mobile-nav { display:none; }
 .mw-round + .mw-round { border-top:0; padding-top:0; margin-top:0; }
 .mw-rounds { grid-template-columns:repeat(var(--mw-count),minmax(0,1fr)); }
 .mw-round { grid-row:span 4; grid-template-rows:subgrid; }
 .mw-round .mw-skipped { display:block; visibility:hidden; }
}
@media(max-width:767px) {
 .di-map-links a { background:#2F6B3C; color:#fff; }
}
/* Tablet/desktop only: keep the existing phone layout and dimensions intact. */
@media(min-width:768px) {
 .di-page .pga-header-shell { width:100%; max-width:none; margin-left:0; margin-right:0; }
 .di-content { grid-template-columns:minmax(0,23fr) minmax(0,54fr) minmax(0,23fr); align-items:stretch; }
 .di-heading { grid-column:1/-1; }
 .di-left { grid-column:1; grid-row:2; }
 .di-conditions { display:contents; }
 #di-map { grid-column:2; grid-row:2; display:flex; flex-direction:column; }
 #di-map iframe { flex:0 0 522px; height:522px; min-height:522px; }
 #di-weather { grid-column:3; grid-row:2; display:flex; flex-direction:column; }
 #di-weather .di-weather-table { flex:1; table-layout:fixed; }
 .di-weather-table th,.di-weather-table td { font-size:calc(clamp(.7rem,1.15vw,1.15rem) - 2pt); padding:7px 2px; white-space:normal; }
 .di-weather-table td:nth-child(2) { white-space:normal; }
 .di-weather-table img { width:clamp(18px,2.25vw,33px); height:clamp(18px,2.25vw,33px); }
 #di-weather .di-help { font-size:clamp(.7rem,.9vw,.85rem); }
 .di-tees { grid-column:1; grid-row:3; }
 .di-foursomes { grid-column:2/4; grid-row:3; }
 .di-group-grid { grid-template-columns:repeat(var(--di-groups),minmax(0,1fr)); }
 .di-map-links a { background:var(--pga-green); border-color:var(--pga-green); color:#fff; }
 .di-map-links a:hover { background:var(--pga-green-dark); }
 .di-address-desktop { display:block; text-align:left; margin-bottom:8px; font-size:calc(.9rem + 2pt); }
 .di-schedule,.di-address,.di-tees,.di-foursomes { font-size:calc(1rem + 2pt); }
 .di-schedule { flex:1; }
 .di-address { flex:0 0 auto; }
 .di-schedule-items li,.di-tees th,.di-tees td,.di-members li { font-size:calc(.85rem + 2pt); }
 .di-address p { font-size:calc(.9rem + 2pt); }
 .di-map-links a,.di-tv-control:not([hidden]) { font-size:calc(.8rem + 2pt); }
 .di-badge { font-size:calc(.7rem + 2pt); }
}

/* Shared Shopping List: isolated from the other app-oriented pages. */
.sl-page { max-width: 1000px; }
.sl-mobile-home { display: none; }
.sl-page h1 { text-align: center; }
.sl-page button, .sl-mobile-nav a { background: #2F6B3C; color: white; border: 0; border-radius: 5px; padding: 14px; font-size: 1.1rem; cursor: pointer; }
.sl-add { max-width: 650px; margin: 0 auto 28px; font-size: 1.2rem; }
.sl-add > label { display: block; margin-bottom: 6px; }
.sl-add input[type=text] { width: 100%; box-sizing: border-box; font-size: 1.3rem; padding: 14px; }
.sl-add fieldset { border: 0; padding: 12px 0; }
.sl-add fieldset label { display: flex; align-items: center; gap: 10px; min-height: 48px; }
.sl-add input[type=radio] { width: 24px; height: 24px; }
.sl-add > button { width: 100%; font-size: 1.25rem; }
.sl-delete { margin: 12px 0; }
.sl-delete button { width: 100%; }
.sl-category { border-top: 1px solid #bbb; margin-top: 24px; padding-top: 10px; }
.sl-item-form label { display: flex; align-items: center; gap: 14px; min-height: 54px; font-size: 1.3rem; overflow-wrap: anywhere; }
.sl-item-form input[type=checkbox] { width: 30px; height: 30px; flex-shrink: 0; accent-color: #2F6B3C; }
#sl-status { color: #a00000; }
#sl-status:empty { display: none; }
@media (max-width: 767px) {
    .sl-site-header { display: none; }
    .sl-mobile-home, .sl-mobile-home .mw-mobile-logo { display: block; }
    .sl-mobile-home img { display: block; width: 100%; height: auto; }
    .sl-mobile-nav { display: flex; gap: 6px; margin-top: 8px; }
    .sl-mobile-nav a { flex: 1; min-width: 0; text-align: center; text-decoration: none; }
}

/* Targeted summary and administration presentation. */
.ps-page .ps-current-grid { width:60%; }
@media(max-width:600px) { .ps-page .ps-current-grid { width:100%; } }
.ps-page .ys-week tr > :first-child { text-align:center; }
.ps-reference .ps-tee-label { white-space:nowrap; }
.ats-eagles { width:660px; table-layout:fixed; }
.ats-eagles th:nth-child(1) { width:160px; }
.ats-eagles th:nth-child(2) { width:220px; }
.ats-eagles th:nth-child(n+3) { width:70px; }
.ats-eagles td:nth-child(-n+2) { white-space:normal; overflow-wrap:anywhere; }
.ats-page .ys-table thead th,.ats-page .ats-players thead th:first-child { background:#e8f1e9; color:#000; }
.ats-page h2 { background:transparent; color:#000; padding:6px 8px; }
.ats-totals tbody th,.ats-totals tbody td { background:#fff; }
.ats-page .ats-players th:not(:first-child),.ats-page .ats-players td:not(:first-child) { text-align:center; }
.ats-filter .pga-button { background:#2f6b3c; color:#fff; border:0; border-radius:5px; padding:7px 12px; font:inherit; cursor:pointer; }
.ys-table.public-list-table th.list-col-city,.ys-table.public-list-table th.list-col-architect { text-align:left; }
.ys-table.public-list-table th,.ys-table.public-list-table td { padding-top:3px; padding-bottom:3px; }
.ys-table.public-list-table th button { min-height:24px; }
.bda-memorial { font-size:calc(1.2rem + 2pt); }
.bda-winner figcaption { font-size:calc(1.1rem + 2pt); }
.player-admin-page .player-table th,.player-admin-page .player-table td { padding-top:4px; padding-bottom:4px; }
.player-admin-page .player-table tr > :nth-child(n+5) { text-align:center; }
.trip-setup-page #daily-schedule,.trip-setup-page #tournament { font-size:13px; }
.trip-setup-page .schedule-row input,.trip-setup-page #tournament input:not([type=checkbox]),.trip-setup-page #tournament select { padding:6px; border:1px solid #c5cac5; border-radius:4px; font:inherit; }
.trip-setup-page #daily-schedule .save-row { padding-bottom:8px; }
.trip-setup-page #tournament .tc-table { font:inherit; width:auto; }
.trip-setup-page #tournament .tc-table th,.trip-setup-page #tournament .tc-table td { padding:7px; }
.trip-setup-page #tournament .tc-table input[type=text] { min-width:8rem; }
.trip-setup-page #tournament .tc-table thead th { background:#e8f1e9; color:#1f4d2e; }
.tc-page .tc-table thead th { background:#e8f1e9; color:#000; font-weight:bold; }
.tc-page .tc-table tbody tr,.tc-page .tc-table tbody td,.tc-page .tc-table tbody th,.tc-page .tc-winner { background:#fff; color:inherit; }
.tc-page .tc-button { background:#2f6b3c; color:#fff; border-color:#2f6b3c; }
.tc-page .tc-section-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:6px 8px; }
.tc-page .tc-jockeys .tc-table { width:auto; }
.tc-page .tc-jockeys th:first-child { width:1%; white-space:nowrap; }
.tc-page #competition-summary .tc-table { width:auto; }
.trip-setup-page .setup-table.foursome-table { min-width:0; }

/* Follow-up rules stay scoped to the requested components. */
.ys-page.cs-page { max-width:1550px; }
.ps-reference-label > span:first-child { text-align:left; }
.ps-reference-label > .ps-reference-years { text-align:right; }
.ats-totals thead th:last-child { text-align:right; }
.ys-week.public-list-table th.list-col-city > button,.ys-week.public-list-table th.list-col-architect > button { margin-left:0; margin-right:0; text-align:left; }
.ys-table.public-list-table .list-col-architect { text-align:left; }
.ys-table.public-list-table .list-col-rounds { width:48px; text-align:center; }
.bda-winner figcaption { font-weight:bold; }
.tc-page .tc-stage.tc-winner { background:#fff1bc; color:#222; }
.pga-page .pga-danger-button,.player-admin-page .pga-danger-button,#daily-schedule .schedule-delete,.course-button.course-button--delete { background:#b42318; color:#fff; border:0; border-radius:5px; padding:9px 15px; font:inherit; font-weight:bold; cursor:pointer; }
.player-save-row { flex-wrap:wrap; }
.sl-page h1 { margin-bottom:10px; }
.sl-add { max-width:none; margin-top:0; }
.sl-entry-actions { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); align-items:stretch; gap:0; margin:12px 0 0; }
.sl-entry-actions fieldset { min-width:0; margin:0; padding:0 8px 0 0; }
.sl-entry-actions button { width:100%; border-radius:4px; overflow-wrap:anywhere; }
.sl-category-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.sl-category-heading h2 { margin:0; min-width:0; }
.sl-category-heading .sl-delete { margin:0; flex-shrink:0; }
.sl-category-heading button { padding:9px 12px; font-size:1rem; }

/* Align course controls to the exact set of displayed table columns. */
.cs-page .ys-round { width:var(--cs-table-width); max-width:100%; }
.ps-page .ps-scorecard .ys-tee th,.ps-page .ps-scorecard .ps-reference th { text-align:left; }
.ps-page .ps-scorecard .ps-rating { white-space:nowrap; }
.ps-page .ps-scorecard td:first-child { min-width:0; }
.ps-page .ps-scorecard thead tr > :nth-child(2),
.ps-page .ps-scorecard tbody tr > :nth-child(2) { text-align:center; }
.admin-user-actions,.admin-user-panel .admin-user-manage-actions { display:flex; align-items:center; flex-wrap:wrap; gap:12px; }
.admin-user-actions { margin-top:12px; }
.admin-user-panel button { box-sizing:border-box; min-height:42px; margin-top:0; padding:10px 16px; font-family:inherit; font-size:15px; line-height:20px; }
.player-admin-page .player-save-row > :is(button,a) { display:inline-flex; align-items:center; justify-content:center; box-sizing:border-box; height:42px; padding:8px 15px; font-family:inherit; font-size:15px; line-height:20px; }

/* Submit Photos: shared app header with a phone-first pending-photo gallery. */
.ps-content { margin: 0 auto; }
.ps-controls { border: 0; padding: 0; margin: 1rem 0; min-width: 0; }
.ps-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.ps-content button, .ps-controls summary, .ps-tag, .ps-pick { min-height: 44px; }
.ps-content button { padding: .65rem .85rem; cursor: pointer; }
.ps-content button:disabled { cursor: default; opacity: .6; }
.ps-selection-actions { display: flex; flex-wrap: wrap; gap: .5rem; }
.ps-gallery { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .5rem; margin: 1rem 0; }
.ps-card { min-width: 0; border: 1px solid #bac8b7; border-radius: .5rem; overflow: hidden; background: #fff; }
.ps-content .ps-photo { width: 100%; display: block; padding: 0; border: 0; background: #edf3ec; border-radius: 0; }
.ps-photo img { display: block; width: 100%; aspect-ratio: 1; object-fit: cover; }
.ps-preview-unavailable { display: grid; place-items: center; aspect-ratio: 1; color: #245631; font-size: .8rem; padding: .25rem; }
.ps-pick { display: flex; align-items: center; gap: .25rem; font-size: .8rem; padding: .25rem; }
.ps-controls input[type=checkbox] { width: 22px; height: 22px; flex-shrink: 0; accent-color: #2f6b3c; }
.ps-controls details { border: 1px solid #b8c9b5; border-radius: .5rem; margin: .6rem 0; padding: .5rem; }
.ps-controls summary { cursor: pointer; font-weight: bold; padding: .5rem; color: #245631; }
.ps-tag { display: flex; gap: .75rem; align-items: center; padding: .4rem; border-top: 1px solid #eee; }
.ps-preview { display: block; width: 100%; max-height: 65vh; object-fit: contain; background: #edf3ec; }
.ps-review-nav { display: flex; flex-wrap: wrap; gap: .5rem; justify-content: space-between; }
#ps-upload, #ps-select { background: #2f6b3c; color: white; font-weight: bold; }
#ps-upload { width: 100%; margin-bottom: 1rem; }
#ps-complete { padding: 1rem; background: #f4efd9; border-radius: .5rem; }
#ps-complete .ps-complete-home { display: none; }
.ps-upload-warning { padding: .85rem; border-left: 4px solid var(--pga-gold); background: #f4efd9; }
@media(max-width: 767px) {
    #ps-complete .ps-complete-home { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; box-sizing: border-box; margin: .75rem; padding: .65rem .85rem; font-size: 1.1rem; }
}
#ps-error, .ps-photo-error { color: #9a241b; overflow-wrap: anywhere; }
.ps-photo-error { padding: .3rem; font-size: .8rem; }
#ps-statuses { overflow-wrap: anywhere; }
@media(min-width: 700px) { .ps-gallery { grid-template-columns: repeat(auto-fill,minmax(140px,1fr)); } }

/* Trip/history header controls share a desktop width without changing mobile menus. */
@media(min-width:1001px) {
    .pga-header-right > .pga-nav-button,.pga-header-right > .pga-nav-menu { width:173.66px; }
    .pga-header-right > .pga-nav-menu > summary { width:100%; text-align:center; }
    .pga-header-right > .pga-nav-button { text-align:center; }
}
@media(max-width:999px) {
    .mw-mobile-nav a,.mw-mobile-nav button { padding:14px 6px; font-size:1.1rem; min-height:50px; white-space:normal; }
    .mw-mobile-nav > a[href="/app/"] { grid-column:1; grid-row:1; }
    .mw-mobile-nav > :first-child { grid-column:2; grid-row:1; }
    .mw-mobile-nav > a[href="/"] { grid-column:3; grid-row:1; }
}
@media(max-width:767px) {
    .di-mobile-nav a,.di-mobile-nav button { padding:14px; font-size:1.1rem; min-height:50px; white-space:normal; }
}
@media(min-width:768px) { .sl-page.ps-content { max-width:1352px; width:100%; } }

/* Best Scores: compact tables with whole tie groups and contained mobile scrolling. */
.ys-page.bs-page { max-width:1400px; margin-inline:auto; }
.bs-section { margin:22px 0; min-width:0; }
.bs-scroll { max-width:100%; width:fit-content; overflow-x:auto; border-radius:8px; }
.bs-table { width:auto; }
.bs-table th,.bs-table td { text-align:center; vertical-align:middle; }
.bs-table th:first-child,.bs-table td:first-child { text-align:center; }
.bs-table th.bs-text,.bs-table td.bs-text { text-align:left; white-space:nowrap; min-width:110px; }
.bs-table .bs-group-start td { border-top:2px solid #b7c7b7; }
.bs-caption { position:absolute; width:1px; height:1px; padding:0; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.bs-course-grid,.bs-history-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; align-items:start; }
.bs-history-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
.bs-course { min-width:0; }
.bs-course h3 { margin:0 0 6px; font-size:1rem; }
.bs-course .bs-table { width:100%; }
.bs-course .bs-scroll { width:100%; }
.bs-award-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.bs-title-row { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:6px; }
.bs-page .bs-title-row h2 { margin:0; min-width:0; }
.bs-back { flex:none; white-space:nowrap; font-size:.85rem; }
.bs-bookmarks .pga-nav-button,.bs-title-row .pga-nav-button { background:#2f6b3c; color:white; padding:6px 10px; }
.bs-section,#best-scores-top { scroll-margin-top:12px; }
.bs-contest-table { table-layout:auto; width:max-content; }
.bs-contest-table th.bs-text,.bs-contest-table td.bs-text { min-width:0; }
.bs-contest-table col { width:auto; }
.bs-notes { font-size:.9rem; }
@media (max-width:1100px) { .bs-history-grid { grid-template-columns:1fr; } }
@media (max-width:800px) { .bs-course-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:560px) { .bs-course-grid,.bs-award-grid { grid-template-columns:1fr; } .bs-title-row h2 { font-size:1.15rem; } }
/* Annual surveys */
.survey-page,.survey-admin{max-width:1352px;margin:24px auto;padding:0;box-sizing:border-box}
.survey-admin [id]{scroll-margin-top:16px}
.survey-page *, .survey-admin *, .survey-summary *{box-sizing:border-box}
.survey-question{border:1px solid #b8cabc;border-radius:8px;margin:24px 0;padding:18px;min-width:0}
.survey-question legend{font-weight:700;color:#245431;padding:0 8px;max-width:100%;overflow-wrap:anywhere}
.survey-field{margin:16px 0}.survey-field>label{display:block;font-weight:600;margin-bottom:6px}
.survey-rating-row{display:grid;grid-template-columns:minmax(0,1fr) 128px;gap:8px 16px;align-items:center}
.survey-rating-name{min-width:0;overflow-wrap:anywhere;text-align:left}
.survey-rating-name label{font-weight:600}.survey-rating-name p{margin:6px 0}
.survey-rating-row>select,.survey-rating-row>.survey-answer{width:128px;justify-self:end}
.survey-rating-row>small{grid-column:1/-1}
.survey-field small,.survey-response-table small,.survey-open-table small{display:block;font-size:.8rem;color:#555;margin-top:8px}
.survey-page textarea,.survey-editor textarea,.survey-editor input:not([type=checkbox]),.survey-editor select{display:block;width:100%;max-width:100%;padding:10px;border:1px solid #9aaa9d;border-radius:5px;font:inherit}
.survey-page textarea,.survey-editor textarea{resize:vertical;min-height:100px}
.survey-page select,.survey-year select{max-width:100%;padding:9px;font:inherit;border:1px solid #9aaa9d;border-radius:5px;background:white}
.survey-check{display:flex!important;align-items:center;gap:10px;margin:10px 0;font-weight:400!important}
.survey-check input{width:auto;flex:none;min-width:18px;min-height:18px}
.survey-editor{padding:14px 0}.survey-editor>label,.survey-editor fieldset>label{display:block;margin:14px 0}
.survey-editor fieldset{min-width:0;border:1px solid #b8cabc;margin:16px 0}
.survey-editor [hidden]{display:none!important}
.survey-page button,.survey-admin button,.survey-year button{background:#2f6b3c;color:#fff;border:0;border-radius:6px;padding:10px 16px;font:inherit;cursor:pointer;white-space:normal}
.survey-admin details{margin:12px 0}.survey-admin summary{cursor:pointer;list-style:none}.survey-admin summary::-webkit-details-marker{display:none}
.survey-config{border-top:1px solid #cbd7ce;padding:18px 0}
.survey-introduction,.survey-answer,.survey-editor,.survey-open-table td{overflow-wrap:anywhere}
.survey-introduction{margin:20px 0;line-height:1.6}
.survey-toolbar{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.survey-delete{border-top:1px dashed #aaa;padding-top:10px;margin-top:10px}
.survey-delete button{background:#8c3030}.survey-error{border-left:4px solid #b02020;padding:12px;color:#a01818;background:#fff3f3}
.survey-not-live{font-size:clamp(1.7rem,5vw,2.4rem);font-weight:900;color:#c00000}
.survey-timestamps{font-size:.85rem;color:#555}.survey-counts{display:flex;gap:24px;flex-wrap:wrap}.survey-counts dd{font-size:1.7rem;font-weight:700;margin:5px 0}
.survey-table-scroll{max-width:100%;overflow-x:auto;border:1px solid #cbd7ce;margin:20px 0}
.survey-response-table{border-collapse:separate;border-spacing:0;width:max-content;min-width:100%}
.survey-response-table th,.survey-response-table td{padding:10px;border-right:1px solid #ddd;border-bottom:1px solid #ddd;text-align:center;max-width:220px;overflow-wrap:anywhere}
.survey-response-table tr>:first-child{position:sticky;left:0;background:#f6f8f3;min-width:150px;max-width:210px;text-align:left;z-index:1}
.survey-response-table thead th{background:#e7eee4;color:#214c2c;vertical-align:bottom}
.survey-response-table .survey-vertical{height:210px;min-width:52px;padding:12px}
.survey-vertical span{writing-mode:vertical-rl;transform:rotate(180deg);display:inline-block;max-height:240px;text-align:left}
.survey-open-table{width:100%;table-layout:fixed;border-collapse:collapse;margin:18px 0}
.survey-open-table th,.survey-open-table td{text-align:left;vertical-align:top;padding:12px;border:1px solid #ccd5cc;overflow-wrap:anywhere}
.survey-open-table th:first-child{width:25%}.survey-plot{max-width:750px;margin:22px 0;padding:14px;border:1px solid #cbd7ce;border-radius:8px}
.survey-plot svg{width:100%;height:auto}.survey-plot-grid{stroke:#ddd;stroke-width:1}.survey-box{fill:#dfc56d;stroke:#2f6b3c;stroke-width:2}.survey-whisker{stroke:#2f6b3c;stroke-width:2}.survey-outlier{fill:#8c3030}.survey-statline{display:flex;flex-wrap:wrap;gap:6px 18px;font-size:.9rem}
.survey-sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.pga-app-home .pga-app-links .pga-app-survey{width:min(100%,420px);justify-self:center}
@media(max-width:500px){.survey-question{padding:12px}.survey-rating-row{grid-template-columns:minmax(0,1fr) 112px;column-gap:10px}.survey-rating-row>select,.survey-rating-row>.survey-answer{width:112px}.survey-open-table th,.survey-open-table td{padding:8px}.survey-counts{gap:14px}.survey-year{display:flex;flex-wrap:wrap;gap:8px}}

/* Photo slideshow: isolated from gallery and photo-management layouts. */
#slideshow-settings { max-width: min(32rem, calc(100vw - 2rem)); }
#slideshow-settings::backdrop { background: rgb(0 0 0 / 70%); }
#slideshow {
    position: fixed; inset: 0; margin: 0; padding: 0; border: 0;
    width: 100vw; height: 100vh; height: 100dvh; max-width: none; max-height: none;
    background: #000; color: #fff; overflow: hidden;
}
#slideshow::backdrop { background: #000; }
#slideshow-image { width: 100%; height: 100%; object-fit: contain; }
#slideshow-message { position: absolute; top: 40%; width: 100%; text-align: center; }
#slideshow-controls {
    position: absolute; bottom: max(1rem, env(safe-area-inset-bottom)); left: 0; right: 0;
    display: flex; justify-content: center; gap: .5rem; padding: .5rem;
    transition: opacity .2s; background: rgb(0 0 0 / 65%);
}
#slideshow-controls button { min-height: 44px; padding: .5rem .75rem; }
#slideshow.controls-hidden { cursor: none; }
#slideshow.controls-hidden #slideshow-controls { opacity: 0; pointer-events: none; }
