.rspba-browser h3{margin-bottom:0.25rem}
.rspba-result-card{background:#fff;border:1px solid #e5e5e5;border-radius:10px;padding:1rem;margin:0 0 1.25rem;box-shadow:0 1px 2px rgba(0,0,0,.04)}
.rspba-result-card .rspba-grade-heading{margin-top:0}
.rspba-result-card .rspba-table-wrap{margin-bottom:0}
.rspba-event-header{margin:0 0 1rem}
.rspba-event-header .rspba-meta{line-height:1.5}
.rspba-grade-heading{display:flex;align-items:baseline;gap:6px;margin:1rem 0 .25rem}
.rspba-grade-heading h3{margin:0}
.rspba-grade-heading .rspba-grade-label{font-weight:500;opacity:.7}
.rspba-adjudicators{margin-top:0.25rem;margin-bottom:0.75rem;line-height:1.6;color:#333}
.rspba-browser .rspba-table-wrap{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;margin-bottom:1rem}
.rspba-browser table{width:100%;border-collapse:collapse;min-width:760px}
.rspba-browser th,.rspba-browser td{border:1px solid #e5e5e5;padding:.4rem;text-align:left;vertical-align:top}
.rspba-browser th{font-weight:700}
.rspba-browser th.rspba-col-piping_place1,.rspba-browser td.rspba-col-piping_place1,
.rspba-browser th.rspba-col-piping_place2,.rspba-browser td.rspba-col-piping_place2,
.rspba-browser th.rspba-col-pipingplace,.rspba-browser td.rspba-col-pipingplace,
.rspba-browser th.rspba-col-drumming_place,.rspba-browser td.rspba-col-drumming_place,
.rspba-browser th.rspba-col-ensemble_place,.rspba-browser td.rspba-col-ensemble_place,
.rspba-browser th.rspba-col-final_place,.rspba-browser td.rspba-col-final_place,
.rspba-browser th.rspba-col-position,.rspba-browser td.rspba-col-position{text-align:center;white-space:nowrap}
.rspba-preview-banner{background:#fff3cd;border:1px solid #ffeeba;color:#775000;padding:.5rem .75rem;margin-bottom:.75rem;border-radius:4px}
.rspba-rotate-message{display:none}

/* 50/50 filter layout */
.rspba-filters{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.rspba-filters .rspba-col{flex:1 1 300px;min-width:260px}
.rspba-filters label{display:block;margin-bottom:4px}
.rspba-filters select{max-width:100%}
@media (min-width: 900px){
  .rspba-filters .rspba-col{flex:0 0 calc(50% - 6px)}
  .rspba-filters select{width:100%}
}

/* Phone portrait: keep the results simple — Band Name | Final Position.
   Rotate to landscape to use the normal full results table with horizontal scrolling. */
@media (max-width: 640px){
  .rspba-browser{font-size:15px}
  .rspba-filters{gap:10px;margin-bottom:1rem}
  .rspba-filters .rspba-col{flex:1 1 100%;min-width:100%}
  .rspba-filters label{font-size:14px}
  .rspba-filters select{width:100%;min-height:42px;font-size:16px}
  .rspba-event-header .rspba-meta strong{display:inline-block;margin-top:.15rem}
  .rspba-grade-heading{align-items:flex-start;gap:4px;margin-top:1.2rem}
  .rspba-grade-heading h3{font-size:1.1rem;line-height:1.25}
  .rspba-adjudicators{font-size:14px;line-height:1.55}
  .rspba-adjudicators strong:first-child{display:block;margin-bottom:.15rem}
  .rspba-result-card{padding:.75rem;margin-bottom:1rem;border-radius:9px}
  .rspba-result-card .rspba-adjudicators{margin-bottom:.65rem}
}

@media (max-width: 640px) and (orientation: portrait){
  .rspba-rotate-message{display:block;margin:.35rem 0 .6rem;font-size:.9rem;color:#555}
  .rspba-mobile-expand-controls{display:flex;gap:.5rem;flex-wrap:wrap;margin:0 0 1rem}
  .rspba-browser .rspba-table-wrap{overflow:visible}
  .rspba-browser table{min-width:0;border:0}
  .rspba-browser thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .rspba-browser tbody{display:block;width:100%}
  .rspba-browser tr{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.75rem;align-items:center;border:1px solid #e5e5e5;border-radius:8px;margin:0 0 .55rem;background:#fff;padding:.6rem .7rem;box-sizing:border-box}
  .rspba-browser td{display:none;border:0;padding:0;box-sizing:border-box;white-space:normal;word-break:break-word}
  .rspba-browser td.rspba-col-band_name,.rspba-browser td.rspba-col-position{display:block}
  .rspba-browser td.rspba-col-band_name{font-weight:700;text-align:left}
  .rspba-browser td.rspba-col-position{font-weight:700;text-align:right;white-space:nowrap}
  .rspba-browser td.rspba-col-position::before{content:'Position ';font-weight:400;color:#555}
}

@media (max-width: 640px) and (orientation: landscape){
  .rspba-browser .rspba-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
  .rspba-browser table{min-width:760px}
}

/* Admin badges */
.badge-published{display:inline-block;background:#e6ffed;color:#065f46;border:1px solid #a7f3d0;padding:2px 8px;border-radius:12px;font-size:12px;vertical-align:middle}
.badge-draft{display:inline-block;background:#fff5f5;color:#7f1d1d;border:1px solid #fecaca;padding:2px 8px;border-radius:12px;vertical-align:middle}

/* Mobile expandable results and full-table sticky Band Name column */
.rspba-mobile-expand-controls{display:none}
.rspba-mobile-expand-controls button{border:1px solid #0070ba;background:#0070ba;color:#fff;border-radius:6px;padding:.45rem .65rem;font-size:.9rem;font-weight:600;line-height:1.2;cursor:pointer}
.rspba-mobile-expand-controls button:hover,.rspba-mobile-expand-controls button:focus{background:#005f9e;border-color:#005f9e;color:#fff}
.rspba-mobile-results{display:none}
@media (min-width: 641px), (max-width: 640px) and (orientation: landscape){
  .rspba-browser th.rspba-col-band_name,
  .rspba-browser td.rspba-col-band_name{
    position:sticky;
    left:0;
    z-index:2;
    background:#fff;
    box-shadow:2px 0 0 #e5e5e5;
  }
  .rspba-browser th.rspba-col-band_name{z-index:3}
}
@media (max-width: 640px) and (orientation: portrait){
  .rspba-rotate-message{display:block;margin:.35rem 0 .6rem;font-size:.9rem;color:#555}
  .rspba-mobile-expand-controls{display:flex;gap:.5rem;flex-wrap:wrap;margin:0 0 1rem}
  .rspba-browser .rspba-table-wrap{display:none}
  .rspba-mobile-results{display:block}
  .rspba-mobile-result{border:1px solid #e5e5e5;border-radius:8px;margin:0 0 .55rem;background:#fff;overflow:hidden}
  .rspba-mobile-result summary{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.75rem;align-items:center;padding:.6rem .7rem;cursor:pointer;list-style:none}
  .rspba-mobile-result summary::-webkit-details-marker{display:none}
  .rspba-mobile-result summary::after{content:'+';font-weight:700;color:#555;margin-left:.25rem}
  .rspba-mobile-result[open] summary::after{content:'–'}
  .rspba-mobile-primary{font-weight:700;text-align:left;word-break:break-word}
  .rspba-mobile-position{font-weight:700;text-align:right;white-space:nowrap}
  .rspba-mobile-position::before{content:'Position ';font-weight:400;color:#555}
  .rspba-mobile-details{border-top:1px solid #eeeeee;margin:0;padding:.45rem .7rem .65rem}
  .rspba-mobile-details div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.75rem;padding:.22rem 0}
  .rspba-mobile-details dt{font-weight:600;color:#444}
  .rspba-mobile-details dd{margin:0;text-align:right;font-weight:600}
}
@media (max-width: 640px) and (orientation: portrait){.rspba-mobile-result summary{grid-template-columns:minmax(0,1fr) auto auto}}


/* Back to top link for long public result pages */
.rspba-back-to-top{text-align:right;margin:1rem 0 0}
.rspba-back-to-top a{display:inline-block;border:1px solid #0070ba;background:#0070ba;color:#fff;text-decoration:none;border-radius:6px;padding:.45rem .7rem;font-weight:600;line-height:1.2}
.rspba-back-to-top a:hover,.rspba-back-to-top a:focus{background:#005f9e;border-color:#005f9e;color:#fff}
html{scroll-behavior:smooth}

/* Admin public-display preview panels */
.rspba-admin-public-preview{margin:1.5rem 0;padding:1rem;background:#f6f7f7;border:1px solid #dcdcde;border-radius:10px}
.rspba-admin-preview-grid{display:grid;grid-template-columns:1fr;gap:1rem}
.rspba-admin-preview-frame{background:#fff;border:1px solid #dcdcde;border-radius:10px;padding:1rem;max-height:520px;overflow:auto}
.rspba-admin-preview-phone{max-width:390px}
.rspba-admin-preview-phone .rspba-filters{display:none}
.rspba-admin-preview-phone .rspba-table-wrap{display:none!important}
.rspba-admin-preview-phone .rspba-rotate-message{display:block;margin:.35rem 0 .6rem;font-size:.9rem;color:#555}
.rspba-admin-preview-phone .rspba-mobile-expand-controls{display:flex;gap:.5rem;flex-wrap:wrap;margin:0 0 1rem}
.rspba-admin-preview-phone .rspba-mobile-results{display:block}
.rspba-admin-preview-phone .rspba-mobile-result{border:1px solid #e5e5e5;border-radius:8px;margin:0 0 .55rem;background:#fff;overflow:hidden}
.rspba-admin-preview-phone .rspba-mobile-result summary{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:.75rem;align-items:center;padding:.6rem .7rem;cursor:pointer;list-style:none}
.rspba-admin-preview-phone .rspba-mobile-result summary::-webkit-details-marker{display:none}
.rspba-admin-preview-phone .rspba-mobile-result summary::after{content:'+';font-weight:700;color:#555;margin-left:.25rem}
.rspba-admin-preview-phone .rspba-mobile-result[open] summary::after{content:'–'}
.rspba-admin-preview-phone .rspba-mobile-primary{font-weight:700;text-align:left;word-break:break-word}
.rspba-admin-preview-phone .rspba-mobile-position{font-weight:700;text-align:right;white-space:nowrap}
.rspba-admin-preview-phone .rspba-mobile-position::before{content:'Position ';font-weight:400;color:#555}
.rspba-admin-preview-phone .rspba-mobile-details{border-top:1px solid #eeeeee;margin:0;padding:.45rem .7rem .65rem}
.rspba-admin-preview-phone .rspba-mobile-details div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.75rem;padding:.22rem 0}
.rspba-admin-preview-phone .rspba-mobile-details dt{font-weight:600;color:#444}
.rspba-admin-preview-phone .rspba-mobile-details dd{margin:0;text-align:right;font-weight:600}
.rspba-admin-preview-desktop .rspba-mobile-results,.rspba-admin-preview-desktop .rspba-mobile-expand-controls,.rspba-admin-preview-desktop .rspba-rotate-message{display:none!important}

/* additional section below

/* Individual pipe band results
--------------------------------------------- */

.rspba-band-results-browser {
    margin: 0 auto;
    max-width: 1400px;
}

.rspba-band-search {
    align-items: flex-end;
    margin-bottom: 24px;
}

.rspba-band-search input[type="text"] {
    box-sizing: border-box;
    min-height: 42px;
    width: 100%;
}

.rspba-band-search-submit {
    display: flex;
    align-items: flex-end;
}

.rspba-band-search-submit .button {
    min-height: 42px;
    padding: 8px 18px;
}

.rspba-band-header {
    border-bottom: 3px solid currentColor;
    margin-bottom: 24px;
    padding-bottom: 12px;
}

.rspba-band-name {
    margin: 0 0 5px;
}

.rspba-band-number {
    font-size: 1rem;
    margin: 0;
}

.rspba-band-results-table {
    border-collapse: collapse;
    width: 100%;
}

.rspba-band-results-table th,
.rspba-band-results-table td {
    border: 1px solid #d5d5d5;
    padding: 10px;
    text-align: left;
    vertical-align: middle;
}

.rspba-band-results-table th {
    font-weight: 700;
    white-space: nowrap;
}

.rspba-band-results-table th:nth-child(n+3),
.rspba-band-results-table td:nth-child(n+3) {
    text-align: center;
}

.rspba-band-no-results {
    border: 1px solid #d5d5d5;
    padding: 16px;
}

.rspba-band-no-results p {
    margin: 0;
}

@media screen and (max-width: 800px) {
    .rspba-band-table-wrap {
        overflow: visible;
    }

    .rspba-band-results-table,
    .rspba-band-results-table thead,
    .rspba-band-results-table tbody,
    .rspba-band-results-table tr,
    .rspba-band-results-table th,
    .rspba-band-results-table td {
        display: block;
        width: 100%;
    }

    .rspba-band-results-table thead {
        border: 0;
        clip: rect(0 0 0 0);
        height: 1px;
        margin: -1px;
        overflow: hidden;
        padding: 0;
        position: absolute;
        width: 1px;
    }

    .rspba-band-results-table tr {
        border: 1px solid #d5d5d5;
        margin-bottom: 18px;
    }

    .rspba-band-results-table td {
        border: 0;
        border-bottom: 1px solid #e5e5e5;
        box-sizing: border-box;
        display: grid;
        gap: 12px;
        grid-template-columns: minmax(130px, 42%) 1fr;
        padding: 10px 12px;
        text-align: left !important;
    }

    .rspba-band-results-table td:last-child {
        border-bottom: 0;
    }

    .rspba-band-results-table td::before {
        content: attr(data-label);
        font-weight: 700;
    }
}

.rspba-band-select-column {
    flex: 1 1 420px;
}

.rspba-band-select-column select {
    box-sizing: border-box;
    min-height: 44px;
    width: 100%;
}

.rspba-band-search {
    margin-bottom: 24px;
}
