/* /Components/AutoRefresh.razor.rz.scp.css */
/* A control row, not a page section: the button and the status it explains read as one unit, so
   they sit on a single baseline and wrap together on a narrow screen. */
.auto-refresh[b-yy6u9a7gt6] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.6rem;
    margin: 0 0 1.5rem;
}

    /* Smaller than a page action — refreshing is a convenience next to Approve and Reject, and it
       should not compete with them. */
    .auto-refresh button[b-yy6u9a7gt6] {
        padding: 0.35rem 0.8rem;
        font-size: 0.8rem;
    }

    .auto-refresh .status[b-yy6u9a7gt6] {
        font-variant-numeric: tabular-nums;
    }
/* /Components/GettingStartedCard.razor.rz.scp.css */
/* Cyan down the left, the same as a run-of-show card — this is the checklist that comes before
   those, and it should read as the same kind of thing. */
.setup[b-othfwy4c4f] {
    border-left: 3px solid var(--cyan);
}

.setup-head[b-othfwy4c4f] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
}

.setup-head h2[b-othfwy4c4f] {
    margin: 0;
}

.setup-head p[b-othfwy4c4f] {
    margin: 0.2rem 0 0;
}

.setup-count[b-othfwy4c4f] {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 0.8rem;
    white-space: nowrap;
    padding: 0.25rem 0.65rem;
    border-radius: 999px;
    background: rgba(0, 179, 226, 0.14);
    color: var(--cyan-dark);
}

.steps[b-othfwy4c4f] {
    list-style: none;
    margin: 1rem 0 0;
    padding: 0;
}

.step[b-othfwy4c4f] {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    padding: 0.7rem 0;
    border-top: 1px solid var(--line);
}

/* The mark carries the state on its own — colour alone would not, so the glyph differs too and
   the state is spelled out for a screen reader. */
.step-mark[b-othfwy4c4f] {
    flex: 0 0 1.5rem;
    height: 1.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    font-size: 0.85rem;
    font-weight: 700;
    line-height: 1;
    background: rgba(0, 8, 88, 0.06);
    color: var(--muted);
}

.step-body[b-othfwy4c4f] {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    min-width: 0;
}

.step-title[b-othfwy4c4f] {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 0.92rem;
    color: var(--navy);
}

.step-actions[b-othfwy4c4f] {
    margin-top: 0.4rem;
    font-size: 0.85rem;
    font-weight: 600;
}

/* Done fades: it is there to be scanned past. Todo is the one the eye should land on. */
.step-done .step-mark[b-othfwy4c4f] {
    background: var(--success-bg);
    color: var(--success);
}

.step-done .step-title[b-othfwy4c4f] {
    color: var(--muted);
}

.step-todo .step-mark[b-othfwy4c4f] {
    background: rgba(0, 179, 226, 0.18);
    color: var(--cyan-dark);
    box-shadow: 0 0 0 3px rgba(0, 179, 226, 0.12);
}

.setup-foot[b-othfwy4c4f] {
    display: flex;
    gap: 1.25rem;
    margin-top: 1rem;
    padding-top: 0.9rem;
    border-top: 1px solid var(--line);
    font-size: 0.85rem;
    font-weight: 600;
}
/* /Components/PayoutSplitChart.razor.rz.scp.css */
.split[b-wnhhviwe8m] {
    margin: 0.5rem 0 0;
}

.split-bar[b-wnhhviwe8m] {
    display: flex;
    width: 100%;
    height: 1.5rem;
    border: 1px solid var(--line);
    border-radius: 999px;
    overflow: hidden;
    background: var(--paper);
}

.split-segment[b-wnhhviwe8m] {
    height: 100%;
    /* A 0.5% slice would otherwise vanish; a hairline still reads as "something is here". */
    min-width: 2px;
}

.split-legend[b-wnhhviwe8m] {
    list-style: none;
    margin: 0.75rem 0 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(14rem, 1fr));
    gap: 0.35rem 1.5rem;
}

    .split-legend li[b-wnhhviwe8m] {
        display: flex;
        align-items: center;
        gap: 0.5rem;
        font-size: 0.85rem;
    }

.split-swatch[b-wnhhviwe8m] {
    width: 0.75rem;
    height: 0.75rem;
    border-radius: 3px;
    border: 1px solid var(--line);
    flex: none;
}

.split-label[b-wnhhviwe8m] {
    color: var(--muted);
}

.split-percent[b-wnhhviwe8m] {
    margin-left: auto;
    font-variant-numeric: tabular-nums;
    font-weight: 600;
}

.split-warning[b-wnhhviwe8m] {
    margin: 0.6rem 0 0;
    font-size: 0.85rem;
    color: var(--danger);
}

/* Places run navy to cyan so first place reads as the heaviest slice; the palette repeats past
   six places, which no real structure reaches. */
.seg-0[b-wnhhviwe8m] { background: var(--navy); }
.seg-1[b-wnhhviwe8m] { background: var(--navy-light); }
.seg-2[b-wnhhviwe8m] { background: var(--cyan-dark); }
.seg-3[b-wnhhviwe8m] { background: var(--cyan); }
.seg-4[b-wnhhviwe8m] { background: #7fd6f0; }
.seg-5[b-wnhhviwe8m] { background: #b9c0e0; }

/* Deliberately off the place ramp — a side pot is not a finishing position. */
.seg-bigfish[b-wnhhviwe8m] { background: var(--warn); }

/* Hatched rather than a flat colour: the money the org keeps is the one slice nobody is paid. */
.seg-kept[b-wnhhviwe8m] {
    background: repeating-linear-gradient(
        45deg,
        var(--paper),
        var(--paper) 5px,
        var(--line) 5px,
        var(--line) 10px);
}
/* /Components/TournamentChecklistCard.razor.rz.scp.css */
.checklist[b-iq3ax8v6aw] {
    border-left: 3px solid var(--cyan);
}

.checklist-head[b-iq3ax8v6aw] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
}

.checklist-head h3[b-iq3ax8v6aw] {
    margin: 0;
}

.checklist-head h3 a[b-iq3ax8v6aw] {
    color: var(--navy);
}

.checklist-head p[b-iq3ax8v6aw] {
    margin: 0.2rem 0 0;
}

.steps[b-iq3ax8v6aw] {
    list-style: none;
    margin: 1rem 0 0;
    padding: 0;
}

.step[b-iq3ax8v6aw] {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    padding: 0.7rem 0;
    border-top: 1px solid var(--line);
}

/* The mark carries the state on its own — colour alone would not, so the glyph differs too and
   the state is spelled out for a screen reader. */
.step-mark[b-iq3ax8v6aw] {
    flex: 0 0 1.5rem;
    height: 1.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    font-size: 0.85rem;
    font-weight: 700;
    line-height: 1;
    background: rgba(0, 8, 88, 0.06);
    color: var(--muted);
}

.step-body[b-iq3ax8v6aw] {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    min-width: 0;
}

.step-title[b-iq3ax8v6aw] {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 0.92rem;
    color: var(--navy);
}

.step-actions[b-iq3ax8v6aw] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-top: 0.4rem;
    font-size: 0.85rem;
    font-weight: 600;
}

.step-actions button[b-iq3ax8v6aw] {
    padding: 0.3rem 0.7rem;
    font-size: 0.8rem;
}

/* Done fades: it is there to be scanned past. Todo is the one the eye should land on. */
.step-done .step-mark[b-iq3ax8v6aw] {
    background: var(--success-bg);
    color: var(--success);
}

.step-done .step-title[b-iq3ax8v6aw] {
    color: var(--muted);
}

.step-todo .step-mark[b-iq3ax8v6aw] {
    background: rgba(0, 179, 226, 0.18);
    color: var(--cyan-dark);
    box-shadow: 0 0 0 3px rgba(0, 179, 226, 0.12);
}

.step-notapplicable .step-title[b-iq3ax8v6aw] {
    color: var(--muted);
    font-weight: 600;
}
/* /Components/WelcomeTour.razor.rz.scp.css */
.tour[b-eizqkqahlv] {
    width: min(34rem, calc(100vw - 2rem));
    padding: 1.75rem 2rem 1.5rem;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: var(--card);
    color: var(--ink);
    box-shadow: 0 20px 50px rgba(0, 8, 88, 0.22);
}

.tour[b-eizqkqahlv]::backdrop {
    background: rgba(0, 8, 88, 0.55);
}

.tour h2[b-eizqkqahlv] {
    font-size: 1.4rem;
    margin-bottom: 1rem;
}

.tour p[b-eizqkqahlv] {
    margin: 0 0 0.85rem;
}

.tour-foot[b-eizqkqahlv] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
    margin-top: 1.5rem;
    padding-top: 1.25rem;
    border-top: 1px solid var(--line);
}

.tour-dots[b-eizqkqahlv] {
    display: flex;
    gap: 0.4rem;
}

.tour-dot[b-eizqkqahlv] {
    width: 0.5rem;
    height: 0.5rem;
    border-radius: 999px;
    background: var(--line);
}

.tour-dot.is-on[b-eizqkqahlv] {
    background: var(--cyan);
}

.tour-buttons[b-eizqkqahlv] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    margin-left: auto;
}
/* /Layout/AuthLayout.razor.rz.scp.css */
.auth-shell[b-wl1econjs8] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    min-height: 100vh;
}

/* Brand panel */
.auth-brand[b-wl1econjs8] {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    overflow: hidden;
    padding: 3rem;
    color: #fff;
    background: linear-gradient(160deg, var(--navy) 0%, var(--navy-light) 100%);
}

.auth-watermark[b-wl1econjs8] {
    position: absolute;
    right: -12%;
    bottom: -8%;
    width: 90%;
    max-width: 620px;
    opacity: 0.07;
    pointer-events: none;
}

.auth-brand-body[b-wl1econjs8] {
    position: relative;
    max-width: 26rem;
    margin: auto 0;
}

.auth-logo[b-wl1econjs8] {
    height: 2.75rem;
    width: auto;
    /* The mark is navy-on-transparent; on the navy panel it needs to read as white. */
    filter: brightness(0) invert(1);
    opacity: 0.95;
}

.auth-eyebrow[b-wl1econjs8] {
    margin: 2.5rem 0 0;
    font-family: var(--font-display);
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--cyan);
}

.auth-headline[b-wl1econjs8] {
    margin: 0.75rem 0 0;
    font-family: var(--font-display);
    font-size: clamp(1.9rem, 3vw, 2.6rem);
    font-weight: 800;
    line-height: 1.1;
}

.auth-sub[b-wl1econjs8] {
    margin: 1.25rem 0 0;
    font-size: 1rem;
    color: rgba(255, 255, 255, 0.78);
}

.auth-foot[b-wl1econjs8] {
    position: relative;
    margin: 0;
    font-family: var(--font-display);
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.45);
}

/* Form panel */
.auth-panel[b-wl1econjs8] {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 3rem 2rem;
    background: var(--paper);
}

.auth-panel-inner[b-wl1econjs8] {
    width: 100%;
    max-width: 24rem;
}

/* Below the split point the brand panel collapses to a banner so the form stays above the fold. */
@media (max-width: 56rem) {
    .auth-shell[b-wl1econjs8] {
        grid-template-columns: 1fr;
        min-height: 100dvh;
    }

    .auth-brand[b-wl1econjs8] {
        padding: 1.75rem 1.5rem;
    }

    .auth-brand-body[b-wl1econjs8] {
        max-width: none;
        margin: 0;
    }

    .auth-logo[b-wl1econjs8] {
        height: 2rem;
    }

    .auth-eyebrow[b-wl1econjs8] {
        margin-top: 1.25rem;
    }

    .auth-headline[b-wl1econjs8] {
        font-size: 1.5rem;
    }

    .auth-sub[b-wl1econjs8], .auth-foot[b-wl1econjs8] {
        display: none;
    }

    .auth-watermark[b-wl1econjs8] {
        width: 60%;
        right: -10%;
        bottom: -40%;
    }

    .auth-panel[b-wl1econjs8] {
        padding: 2rem 1.5rem 3rem;
    }
}
/* /Layout/MainLayout.razor.rz.scp.css */
.site-header[b-1b346lkd6z] {
    position: sticky;
    top: 0;
    z-index: 50;
    background: #fff;
    border-bottom: 1px solid var(--line);
}

.site-nav[b-1b346lkd6z] {
    display: flex;
    align-items: center;
    gap: 1.75rem;
    flex-wrap: wrap;
    padding: 0.65rem 1.5rem;
}

.brand[b-1b346lkd6z] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    text-decoration: none;
    color: var(--navy);
}

    .brand:hover[b-1b346lkd6z] {
        text-decoration: none;
    }

    .brand img[b-1b346lkd6z] {
        height: 1.75rem;
        width: auto;
    }

    .brand span[b-1b346lkd6z] {
        font-family: var(--font-display);
        font-weight: 800;
        font-size: 1rem;
    }

.nav-links[b-1b346lkd6z] {
    display: flex;
    align-items: center;
    gap: 1.25rem;
}

    .nav-links a[b-1b346lkd6z] {
        font-family: var(--font-display);
        font-weight: 700;
        font-size: 0.85rem;
        color: var(--ink);
        opacity: 0.7;
    }

        .nav-links a:hover[b-1b346lkd6z] {
            opacity: 1;
            text-decoration: none;
        }

.nav-sep[b-1b346lkd6z] {
    width: 1px;
    height: 1rem;
    background: var(--line);
    display: inline-block;
}

.nav-right[b-1b346lkd6z] {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-left: auto;
}

    .nav-right select[b-1b346lkd6z] {
        width: auto;
        max-width: 12rem;
        padding: 0.35rem 0.6rem;
        font-size: 0.85rem;
    }

    .nav-right a[b-1b346lkd6z] {
        font-family: var(--font-display);
        font-weight: 700;
        font-size: 0.85rem;
        color: var(--ink);
        opacity: 0.7;
    }

        .nav-right a:hover[b-1b346lkd6z] {
            opacity: 1;
            text-decoration: none;
        }
/* /Pages/Home.razor.rz.scp.css */
.org-chip[b-iarygksdhh] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
    padding: 0.5rem 0.85rem;
    background: var(--card);
    border: 1px solid var(--line);
    border-radius: 999px;
}

.org-chip-name[b-iarygksdhh] {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 0.85rem;
    color: var(--navy);
}

.role-badge[b-iarygksdhh] {
    padding: 0.15rem 0.5rem;
    border-radius: 999px;
    background: rgba(0, 179, 226, 0.14);
    color: var(--cyan-dark);
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.02em;
}

.link-strong[b-iarygksdhh] {
    font-weight: 600;
}

.section-head a[b-iarygksdhh] {
    font-size: 0.85rem;
    font-weight: 600;
    white-space: nowrap;
}

/* Stat tiles */
.stat-row[b-iarygksdhh] {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
}

.stat[b-iarygksdhh] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    padding: 1.1rem 1.25rem;
    background: var(--card);
    border: 1px solid var(--line);
    border-radius: 12px;
}

.stat-value[b-iarygksdhh] {
    font-family: var(--font-display);
    font-size: 2rem;
    font-weight: 800;
    line-height: 1;
    color: var(--navy);
}

.stat-label[b-iarygksdhh] {
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--muted);
}

/* The section-head already carries the heading and the "all tournaments" link, so this sits
   under both rather than beside them. */
.run-of-show-hint[b-iarygksdhh] {
    margin: -0.35rem 0 0.85rem;
}

/* Tournament rows */
.tournament-list[b-iarygksdhh] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.tournament[b-iarygksdhh] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
    padding: 1rem 1.25rem;
    border-left: 3px solid var(--cyan);
}

.tournament h3[b-iarygksdhh] {
    margin: 0;
}

.tournament p[b-iarygksdhh] {
    margin: 0.2rem 0 0;
}

.tournament-actions[b-iarygksdhh] {
    display: flex;
    gap: 1rem;
    font-size: 0.85rem;
    font-weight: 600;
}

/* Quick links */
.quick-links[b-iarygksdhh] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr));
    gap: 1rem;
}

.quick-link[b-iarygksdhh] {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    padding: 1.1rem 1.25rem;
    color: inherit;
    transition: border-color 0.15s ease, transform 0.15s ease;
}

.quick-link:hover[b-iarygksdhh] {
    text-decoration: none;
    border-color: var(--cyan);
    transform: translateY(-1px);
}

.quick-title[b-iarygksdhh] {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 0.95rem;
    color: var(--navy);
}

/* Empty states */
.empty[b-iarygksdhh] {
    max-width: 40rem;
}

.empty h2[b-iarygksdhh] {
    margin-top: 0;
}

@media (max-width: 44rem) {
    .stat-row[b-iarygksdhh] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
/* /Pages/Login.razor.rz.scp.css */
.login-card[b-s9nctyeu1h] {
    background: var(--card);
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 2rem;
    box-shadow: 0 12px 32px rgba(0, 8, 88, 0.07);
}

.login-card h1[b-s9nctyeu1h] {
    margin: 0;
    font-size: 1.5rem;
}

.login-lede[b-s9nctyeu1h] {
    margin: 0.4rem 0 0;
    font-size: 0.9rem;
    color: var(--muted);
}

.login-alert[b-s9nctyeu1h] {
    margin: 1.25rem 0 0;
    font-size: 0.88rem;
}

.login-card form[b-s9nctyeu1h] {
    margin-top: 1.5rem;
}

/* .field itself (and its label/input spacing) is a shared form primitive in app.css; only the
   tighter sign-in label sizing is local. */
.field label[b-s9nctyeu1h] {
    font-size: 0.8rem;
    letter-spacing: 0.02em;
}

/* .password-wrap and .password-toggle moved to app.css when the password-reset pages started
   using them too: scoped CSS is per-component, so a copy here would only ever style sign-in. */

.login-submit[b-s9nctyeu1h] {
    width: 100%;
    margin-top: 1.6rem;
    padding: 0.7rem 1rem;
    font-size: 0.95rem;
}

.login-help[b-s9nctyeu1h] {
    margin: 1.5rem 0 0;
    padding-top: 1.25rem;
    border-top: 1px solid var(--line);
    font-size: 0.82rem;
    color: var(--muted);
}
/* /Pages/Organizations/Members.razor.rz.scp.css */
.issued-invite p[b-utaqapwkm9] {
    margin: 0.4rem 0 0.75rem;
    font-size: 0.88rem;
}

/* The token makes this link far too long to wrap on spaces, and it must stay readable in full —
   it is shown exactly once. */
.issued-link[b-utaqapwkm9] {
    display: block;
    margin-bottom: 0.75rem;
    padding: 0.5rem 0.7rem;
    word-break: break-all;
    color: var(--ink);
    background: #fff;
    border: 1px solid var(--line);
}

/* Table controls sit inside a padded cell, so they drop the full-width default that makes sense
   on a form. */
.role-select[b-utaqapwkm9] {
    width: auto;
    min-width: 12.5rem;
    padding: 0.35rem 0.5rem;
    font-size: 0.88rem;
}
/* /Pages/Organizations/Settings.razor.rz.scp.css */
/* Picker and hex box are one control: the swatch sets the value by eye, the box by paste. */
.color-input[b-g5q7z36otz] {
    display: flex;
    gap: 0.5rem;
}

    .color-input input[type="color"][b-g5q7z36otz] {
        flex: 0 0 3rem;
        height: 2.45rem;
        padding: 0.2rem;
        cursor: pointer;
    }

.color-hex[b-g5q7z36otz] {
    flex: 1 1 auto;
    min-width: 0;
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    text-transform: uppercase;
}

.swatch-row[b-g5q7z36otz] {
    display: flex;
    gap: 0.5rem;
    margin-bottom: 1rem;
}

.swatch[b-g5q7z36otz] {
    width: 4rem;
    height: 2.25rem;
    border: 1px solid var(--line);
    border-radius: 6px;
}

/* The build command is meant to be copied whole, so it must not wrap into something that breaks
   when pasted. */
.card pre[b-g5q7z36otz] {
    margin: 0.35rem 0 1rem;
    font-size: 0.82rem;
    white-space: pre;
}

.build-download[b-g5q7z36otz] {
    font-size: 0.88rem;
    font-weight: 600;
}
/* /Pages/Platform/Provision.razor.rz.scp.css */
/* Same block the Members page uses for an issued invitation, because it is the same thing shown
   the same way — a link that exists exactly once. */
.issued-invite p[b-yocz5qn454] {
    margin: 0.4rem 0 0.75rem;
    font-size: 0.88rem;
}

/* The token makes this link far too long to wrap on spaces, and it must stay readable in full. */
.issued-link[b-yocz5qn454] {
    display: block;
    margin-bottom: 0.75rem;
    padding: 0.5rem 0.7rem;
    word-break: break-all;
    color: var(--ink);
    background: #fff;
    border: 1px solid var(--line);
}

/* Availability sits where the field hint sits, so it inherits that size and spacing and only
   overrides the colour — green and red carry the answer, the words carry it for anyone who
   cannot see the difference. */
.slug-status.available[b-yocz5qn454] {
    color: var(--success);
}

.slug-status.taken[b-yocz5qn454] {
    color: var(--danger);
}
/* /Pages/Tournaments/Edit.razor.rz.scp.css */
/* Inside the lifecycle card, hold the destructive action at the far edge so it is never a
   mis-click away from the state-transition buttons. */
.btn-end[b-5xwo8knegk] {
    margin-left: auto;
}

@media (max-width: 40rem) {
    .btn-end[b-5xwo8knegk] {
        margin-left: 0;
    }
}

/* The season form's actions share a line with links out to the series. `form
   button[type="submit"]` adds a top margin meant for a button that follows a stacked field, which
   in a centred flex row only knocks it off the line. */
.season-actions[b-5xwo8knegk] {
    margin-top: 1.1rem;
}

    .season-actions button[type="submit"][b-5xwo8knegk] {
        margin-top: 0;
    }

/* Checkboxes sit in a row of their own inside the field, since a .field's stacked label + control
   rhythm assumes one control. */
.species-choices[b-5xwo8knegk] {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
}

    .species-choices label[b-5xwo8knegk] {
        display: flex;
        align-items: center;
        gap: 0.4rem;
        margin: 0;
    }
/* /Pages/Tournaments/Leaderboard.razor.rz.scp.css */
/* Day columns push the table past the page on a three-day event with a narrow window. */
.board-scroll[b-m05uu6oeyq] {
    overflow-x: auto;
}
/* /Pages/Tournaments/Review.razor.rz.scp.css */
/* One card per pending catch. `section` already carries a 2.5rem bottom margin from app.css,
   which is the rhythm between two unrelated blocks — here the cards are a single stacked list,
   so they sit closer. */
.catch[b-lekoomcgvl] {
    margin-bottom: 1.25rem;
}

.catch-head[b-lekoomcgvl] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
}

    .catch-head h2[b-lekoomcgvl] {
        margin: 0;
    }

.catch-angler[b-lekoomcgvl] {
    margin: 0.15rem 0 0;
}

.catch-facts[b-lekoomcgvl] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
}

.catch-caught[b-lekoomcgvl] {
    margin: 0.6rem 0 0;
}

/* Trust block. The flagged and unflagged states share a layout and differ only in colour, so the
   warning treatment is one modifier rather than a second copy of the block. */
.trust[b-lekoomcgvl] {
    margin-top: 1rem;
    padding: 0.75rem 1rem;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: rgba(0, 8, 88, 0.03);
}

.trust-flagged[b-lekoomcgvl] {
    border-color: var(--warn);
    background: var(--warn-bg);
    color: var(--warn);
}

.trust-score[b-lekoomcgvl] {
    margin: 0;
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 0.9rem;
}

.trust ul[b-lekoomcgvl] {
    margin: 0.4rem 0 0;
    padding-left: 1.2rem;
    font-size: 0.85rem;
    line-height: 1.5;
}

.trust-notes[b-lekoomcgvl] {
    color: var(--muted);
}

.trust-flagged .trust-notes[b-lekoomcgvl] {
    color: inherit;
    opacity: 0.85;
}

/* Media strip. A grid rather than a flex row so every frame is the same size no matter what
   aspect ratio the phone shot, and so the strip reflows to one column on a narrow screen instead
   of squeezing three 200px frames into it. */
.media[b-lekoomcgvl] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(11rem, 1fr));
    gap: 1rem;
    margin-top: 1.25rem;
}

    .media figure[b-lekoomcgvl] {
        margin: 0;
    }

    .media a[b-lekoomcgvl] {
        display: block;
    }

    /* Fixed frame with object-fit: the images are full-resolution phone originals in wildly
       different orientations, and letting each one size itself made the row jump as they landed.
       Reserving the box up front is also what makes loading="lazy" free — the browser knows the
       layout before a single byte arrives. */
    .media img[b-lekoomcgvl], .media video[b-lekoomcgvl] {
        display: block;
        width: 100%;
        height: 11rem;
        object-fit: cover;
        background: rgba(0, 8, 88, 0.06);
        border: 1px solid var(--line);
        border-radius: 8px;
    }

    .media a:hover img[b-lekoomcgvl] {
        border-color: var(--cyan);
    }

    .media figcaption[b-lekoomcgvl] {
        margin-top: 0.35rem;
        font-size: 0.78rem;
        font-weight: 600;
        color: var(--muted);
    }

/* The two decisions are irreversible and opposite, so they get a rule above them and the widest
   gap the card allows — Approve at the leading edge, Reject at the trailing one. */
.catch-actions[b-lekoomcgvl] {
    margin-top: 1.25rem;
    padding-top: 1.25rem;
    border-top: 1px solid var(--line);
}

.btn-end[b-lekoomcgvl] {
    margin-left: auto;
}

.reject-form[b-lekoomcgvl] {
    margin-top: 1.25rem;
    padding-top: 1.25rem;
    border-top: 1px solid var(--line);
}

    .reject-form .field[b-lekoomcgvl] {
        margin-bottom: 1rem;
    }

    .reject-form textarea[b-lekoomcgvl] {
        max-width: 32rem;
    }

@media (max-width: 40rem) {
    .btn-end[b-lekoomcgvl] {
        margin-left: 0;
    }
}
