.trout-calendar{max-width:1440px;margin:0 auto}.trout-calendar__carousel{display:flex;align-items:center;gap:.6rem}.trout-calendar__viewport{width:100%;overflow:hidden}.trout-calendar__track{display:flex;transition:transform .45s ease}.trout-calendar__slide{flex:0 0 100%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem}.trout-calendar__arrow{flex:0 0 auto;width:2.5rem;height:2.5rem;border:0;border-radius:50%;background:#166534;color:#fff;font-size:2rem;line-height:1;cursor:pointer}.trout-calendar__arrow:hover{background:#15803d}.trout-calendar__month{border:1px solid #d9e3e5;border-radius:8px;overflow:hidden;background:#fff}.trout-calendar__month h2{margin:0;padding:.8rem 1rem;background:#166534;color:#fff;font-size:1.1rem;text-align:center}.trout-calendar__weekdays,.trout-calendar__days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.trout-calendar__weekdays{padding:.55rem .35rem;border-bottom:1px solid #e2e8f0;color:#64748b;font-size:.72rem;font-weight:700;text-align:center}.trout-calendar__days{align-items:stretch}.trout-calendar__day{min-height:84px;padding:.3rem;border-right:1px solid #edf2f7;border-bottom:1px solid #edf2f7;font-size:.72rem;overflow:hidden}.trout-calendar__day:nth-child(7n){border-right:0}.trout-calendar__day--empty{background:#f8fafc}.trout-calendar__day-number{display:block;margin-bottom:.2rem;font-weight:700;color:#475569}.trout-calendar__day--event{background:#f0fdf4}.trout-calendar__day--today{background:#fef3c7;box-shadow:inset 0 0 0 2px #f59e0b}.trout-calendar__day--today .trout-calendar__day-number{color:#92400e}.trout-calendar__event{margin:.15rem 0;padding:.2rem;border-radius:3px;background:#dcfce7;line-height:1.2;color:#166534}.trout-calendar__event strong{display:block;font-size:.65rem}.trout-calendar__event a,.trout-calendar__event span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#166534;text-decoration:none}.trout-calendar__event a:hover{text-decoration:underline}@media(max-width:900px){.trout-calendar__slide{grid-template-columns:1fr}.trout-calendar__carousel{align-items:flex-start}.trout-calendar__day{min-height:72px}}

.trout-calendar__event--team{background:#dbeafe;color:#1d4ed8}.trout-calendar__event--team a,.trout-calendar__event--team span{color:#1d4ed8}.trout-calendar__event--individual{background:#dcfce7;color:#15803d}.trout-calendar__event--individual a,.trout-calendar__event--individual span{color:#15803d}.trout-calendar__event--children{background:#fef3c7;color:#a16207}.trout-calendar__event--children a,.trout-calendar__event--children span{color:#a16207}.trout-calendar__event--adults{background:#f1f5f9;color:#475569}.trout-calendar__event--adults a,.trout-calendar__event--adults span{color:#475569}
.trout-competition{display:flex;flex-direction:column;max-width:900px;margin:0 auto}.trout-competition__details{order:1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin:1.5rem 0}.trout-competition__details div{padding:1rem;border:1px solid #d9e3e5;border-radius:8px}.trout-competition__details dt{font-size:.8rem;text-transform:uppercase;color:#64748b}.trout-competition__details dd{margin:.35rem 0 0;font-weight:600}.trout-competition__description{order:2;margin:1.5rem 0}.trout-competition__registration{order:3;padding:1.25rem;border:1px solid #bbf7d0;border-radius:10px;background:#f0fdf4}.trout-competition__registration h2{margin-top:0}.trout-competition__registration-type{padding-top:1rem;margin-top:1rem;border-top:1px solid #bbf7d0}.trout-competition__registration-type h3{font-size:1rem;margin:0 0 .5rem}@media(max-width:600px){.trout-competition__details{grid-template-columns:1fr}}
.trout-competition__lists{order:4;display:grid;grid-template-columns:1fr;gap:1.25rem;margin-top:1.5rem}.trout-competition__lists h2{font-size:1.2rem}
.trout-participants{font-size:.88rem}.trout-participant__number{font-weight:700}.trout-participant__photo{width:58px}.trout-participant__photo-frame,.trout-participant__photo-empty{display:block;width:52px;height:52px;border-radius:50%;overflow:hidden;background:#e2e8f0;color:#64748b;font-size:.6rem}.trout-participant__photo-frame img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 28%;transform:scale(1.18)}.trout-participant__photo-empty{display:grid;place-items:center;text-align:center}.trout-participant__team-emblem{width:64px}.trout-participant__team-emblem>img,.trout-participant__team-placeholder{display:block;width:52px;height:52px;border-radius:50%;box-sizing:border-box}.trout-participant__team-emblem>img{object-fit:contain;padding:3px;border:1px solid #d9e3e5;background:#fff}.trout-participant__team-placeholder{display:grid;place-items:center;overflow:hidden;background:transparent;color:#fff;font-size:.72rem;font-weight:800;letter-spacing:-.04em}.trout-participant__team-placeholder img{display:block;width:100%;height:100%;object-fit:contain}.trout-participants small{display:block;margin-top:.2rem;color:#64748b}.trout-participant__team{font-weight:600}.trout-participant__captain{color:#15803d;font-size:.9em;white-space:nowrap}.trout-participant__stars{color:#f59e0b;letter-spacing:.1em}.trout-participant__stars--inline{display:inline;margin:0;white-space:nowrap}.trout-competition__details .trout-competition__registration-timer{border-color:#86efac;background:#f0fdf4;text-align:center}.trout-competition__registration-timer dt{color:#166534;text-transform:none;font-size:.95rem}.trout-competition__registration-timer dd{font-size:1.65rem;letter-spacing:.06em;color:#166534}.trout-competition__registration-timer small{display:block;color:#15803d;margin-top:.25rem}
/* Published Excel results */
.trout-published-results { max-width: 1280px; margin: 0 auto; padding: 24px 16px; }
.trout-results-tabs { display: flex; flex-wrap: wrap; gap: 10px; margin: 18px 0; }
.trout-results-tab { border: 1px solid #cfd9e7; background: #fff; color: #31435d; padding: 10px 16px; border-radius: 10px; font-weight: 700; cursor: pointer; }
.trout-results-tab.is-active { color: #fff; background: #137a42; border-color: #137a42; }
.trout-results-panel { display: none; }
.trout-results-panel.is-active { display: block; }
.trout-results-panel iframe { width: 100%; height: 78vh; min-height: 560px; border: 1px solid #d9e1ea; border-radius: 12px; background: #fff; }
.trout-results-image-link { display: block; }
.trout-results-image { display: block; width: 100%; height: auto; border: 0; background: transparent; }
.trout-results-updated { color: #71809a; }
@media (max-width: 720px) { .trout-results-panel iframe { min-height: 460px; height: 68vh; } }

/* Compact competition registration panel */
.trout-competition__registration{padding:1rem;border-color:#bfdbfe;background:#eff6ff}
.trout-competition__registration-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.65rem}
.trout-competition__registration-header h2{margin:0}
.trout-competition__download-list{flex:0 0 auto;padding:.55rem .9rem;border:1px solid #93c5fd;background:#dbeafe;color:#1e3a8a;font-weight:700}
.trout-competition__download-list:hover,.trout-competition__download-list:focus{border-color:#60a5fa;background:#bfdbfe;color:#172554}
.trout-competition__registration-type{padding-top:.7rem;margin-top:.7rem;border-top-color:#bfdbfe}
@media(max-width:600px){.trout-competition__registration-header{align-items:flex-start;flex-direction:column}.trout-competition__download-list{align-self:flex-end}}
.trout-champion-stars-with-years{display:inline-flex;align-items:flex-start;gap:2px;margin-left:3px;vertical-align:middle;color:#f59e0b;white-space:nowrap}.trout-champion-star{display:inline-grid;grid-template-rows:auto auto;justify-items:center;line-height:1}.trout-champion-star b{font-size:1em;line-height:1}.trout-champion-star small{margin-top:2px;color:#7a6740;font-size:8px;font-weight:600;line-height:1}
.trout-participant__stages {
    min-width: 105px;
    text-align: center;
    vertical-align: middle;
}
.trout-participant__stages small,
.trout-participant__stages strong {
    display: block;
}
.trout-participant__stages small {
    color: #64748b;
    white-space: nowrap;
}
.trout-participant__stages strong {
    margin-top: .2rem;
    font-size: 1.2rem;
}
.trout-league {
    font-weight: 800;
    letter-spacing: .02em;
}
.trout-league--gold {
    color: #b77900 !important;
}
.trout-league--silver {
    color: #7b8794 !important;
}
/* Match the confirmation badge across the entire row, including mobile grid gaps. */
.trout-participants tr.trout-participant--confirmed,.trout-participants tr.trout-participant--confirmed>td{background-color:#dcfce7!important;--bs-table-bg:#dcfce7;--bs-table-accent-bg:transparent;--bs-table-bg-type:transparent;--bs-table-bg-state:transparent;box-shadow:none!important}
.trout-participant__actions{display:flex;flex-direction:column;gap:6px;align-items:stretch}
.trout-participant__confirmation-status{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:.22rem;min-height:38px;padding:.45rem .7rem;border:0;border-radius:0;background:transparent;color:#166534;font-weight:800;line-height:1.2;text-align:center}
.trout-participant__confirmation-status small{display:block;margin:0;color:#3f7650;font-size:.7rem;font-weight:500;white-space:nowrap}
@media(max-width:720px){
    .trout-competition{width:100%;max-width:100%;padding:0 .5rem;box-sizing:border-box;overflow:hidden}
    .trout-competition__lists,.trout-competition__lists>div{width:100%;min-width:0}
    .trout-participants,.trout-participants tbody{display:block;width:100%;min-width:0}
    .trout-participants tr{display:grid;grid-template-columns:28px 56px 56px minmax(0,1fr);width:100%;box-sizing:border-box;padding:.7rem 0;border-bottom:1px solid #d9e3e5}
    .trout-participants td{display:block;min-width:0;padding:.2rem .25rem!important;border:0!important;overflow-wrap:anywhere;word-break:normal}
    .trout-participant__number{grid-column:1;grid-row:1/4}
    .trout-participant__photo{grid-column:2;grid-row:1}
    .trout-participant__team-emblem{grid-column:3;grid-row:1}
    .trout-participant__identity,.trout-participant__team-name{grid-column:4;grid-row:1}
    .trout-participant__team-roster,.trout-participant__stages,.trout-participant__registration-source,.trout-participant__created,.trout-participant__action{grid-column:2/-1;width:auto!important;text-align:left}
    .trout-participant__team-roster{grid-row:2}
    .trout-participant__stages{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;margin-top:.35rem}
    .trout-participant__stages small,.trout-participant__stages strong{display:inline;margin:0;white-space:normal}
    .trout-participant__stages small:not(:first-child){margin-left:.65rem}
    .trout-participant__stages strong{font-size:1rem}
    .trout-participant__registration-source,.trout-participant__created{font-size:.82rem;color:#64748b}
    .trout-participant__actions{align-items:flex-start;margin-top:.35rem}
    .trout-participant__actions form,.trout-participant__actions .btn{width:100%}
    .trout-participant__confirmation-status{width:100%;box-sizing:border-box}
    .trout-participants__vacancy td:first-child{grid-column:1}
    .trout-participants__vacancy td[colspan]{grid-column:2/-1}
    .trout-participants tr>td[colspan="9"],.trout-participants tr>td[colspan="8"]{grid-column:1/-1}
}
/* Keep team emblems square when wide tables are compressed by the template. */
.trout-participant__team-emblem {
    width: 64px;
    min-width: 64px;
}
.trout-participant__team-emblem > img,
.trout-participant__team-placeholder {
    width: 52px !important;
    min-width: 52px;
    max-width: 52px !important;
    height: 52px !important;
    min-height: 52px;
    max-height: 52px;
    aspect-ratio: 1 / 1;
    flex: 0 0 52px;
    box-sizing: border-box;
}
.trout-participant__team-emblem > img {
    object-fit: contain;
}

/* Shared participant media layout and confirmation under registration source. */
.trout-participant__media{width:148px;vertical-align:top}
.trout-participant__media-block{width:148px;max-width:100%}
.trout-participant__images{display:flex;align-items:flex-start;justify-content:center;gap:8px}
.trout-participant__images .trout-participant__photo,.trout-participant__images .trout-participant__team-emblem{width:52px;min-width:52px;flex:0 0 52px}
.trout-participant__registration-source .trout-participant__confirmation-status{display:flex;align-items:flex-start;text-align:left;width:100%;box-sizing:border-box;margin-top:8px;min-height:0;padding:0;font-size:.78rem}
.trout-participant__registration-source .trout-participant__confirmation-status small{font-size:.7rem;white-space:normal;overflow-wrap:normal}
@media(max-width:720px){
    .trout-participants td.trout-participant__media{grid-column:2/4;grid-row:1;width:auto}
    .trout-participant__media-block{width:100%}
    .trout-participant__images{gap:4px}
    .trout-participant__images .trout-participant__photo,.trout-participant__images .trout-participant__team-emblem{width:50px;min-width:50px;flex-basis:50px}
    .trout-participant__images .trout-participant__photo-frame,.trout-participant__images .trout-participant__team-emblem>img,.trout-participant__images .trout-participant__team-placeholder{width:50px!important;min-width:50px;max-width:50px!important;height:50px!important;min-height:50px;max-height:50px;flex-basis:50px}
}
