/* ===========================================================================
   FightsFinder — Events Module
   Recreates the design prototype's tokens (README "Design Tokens") as reusable
   classes. Everything is namespaced under .ffem to avoid clashing with the
   site-wide Bootstrap / site.css. Saira Condensed = display/labels/buttons,
   Poppins = body/inputs.
   =========================================================================== */

.ffem,
.ffem * {
    box-sizing: border-box;
}

.ffem {
    --gold: #FFC400;
    --gold-dark: #c79100;
    --gold-darker: #b07d00;
    --gold-date: #FFB000;
    --bg: #14181d;
    --header: #0a0c0e;
    --panel: #0e1216;
    --inset: #10141a;
    --track: #181d23;
    --txt: #fff;
    --txt-2: #cfd4da;
    --txt-muted: #9aa3ad;
    --txt-faint: #7e858d;
    --txt-faint-2: #5c646d;
    --green: #2fbf71;
    --green-white: #1f9a55;
    --red: #e5484d;
    --blue: #3b82f6;
    --dark-gray: #555555;
    --light-gray: #d1d1d1;
    /* light-screen tokens (results / editor) */
    --sheet: #fff;
    --ink: #15181c;
    --ink-muted: #5c646d;
    --ink-muted-2: #8a9099;
    --line: #e6e8ec;
    --line-2: #d8dade;
    --soft: #f7f8fa;
    --soft-2: #f4f5f7;
    --soft-3: #f0f1f3;
    --font-display: 'Saira Condensed', system-ui, sans-serif;
    --font-body: 'Poppins', system-ui, sans-serif;
    font-family: var(--font-body);
    -webkit-font-smoothing: antialiased;
}

.ffem-body {
    margin: 0;
    padding: 0;
    background: var(--bg);
    color: #fff;
}

.ffem {
    min-height: 100vh;
    background: var(--bg);
    color: #fff;
}

.ffem-display {
    font-family: var(--font-display);
}

.ffem input:focus, .ffem select:focus, .ffem textarea:focus {
    outline: none;
    border-color: var(--gold) !important;
}

.ffem select option {
    background: var(--inset);
    color: #fff;
}

@keyframes ffem-pop {
    0% {
        transform: translateY(10px);
        opacity: 0;
    }

    100% {
        transform: translateY(0);
        opacity: 1;
    }
}

@keyframes ffem-toast {
    0% {
        transform: translate(-50%, 20px);
        opacity: 0;
    }

    12% {
        transform: translate(-50%, 0);
        opacity: 1;
    }

    88% {
        transform: translate(-50%, 0);
        opacity: 1;
    }

    100% {
        transform: translate(-50%, 20px);
        opacity: 0;
    }
}

.ffem ::-webkit-scrollbar {
    width: 10px;
    height: 10px;
}

.ffem ::-webkit-scrollbar-thumb {
    background: #2a3138;
    border-radius: 8px;
}

/* ---------------- header ---------------- */
.ffem-header {
    position: sticky;
    top: 0;
    z-index: 60;
    background: var(--header);
    border-bottom: 1px solid rgba(255,255,255,.08);
}

.ffem-header-inner {
    max-width: 1120px;
    margin: 0 auto;
    padding: 0 16px;
    min-height: 60px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
}

.ffem-logo {
    display: flex;
    align-items: center;
    gap: 9px;
    cursor: pointer;
    padding: 10px 0;
    text-decoration: none;
}

.ffem-logo-ring {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    border: 3px solid var(--gold);
    border-radius: 50%;
    position: relative;
}

    .ffem-logo-ring::after {
        content: '';
        position: absolute;
        width: 3px;
        height: 9px;
        background: var(--gold);
        bottom: -6px;
        right: -3px;
        transform: rotate(-45deg);
        border-radius: 2px;
    }

.ffem-logo-word {
    font-family: var(--font-display);
    font-weight: 800;
    font-size: 20px;
    letter-spacing: .4px;
    line-height: .82;
    color: var(--gold);
    text-transform: uppercase;
}

.ffem-nav {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.ffem-nav-btn {
    background: rgba(255,255,255,.06);
    color: #fff;
    border: 1px solid rgba(255,255,255,.14);
    border-radius: 999px;
    padding: 9px 16px;
    font-family: var(--font-display);
    font-weight: 600;
    font-size: 14px;
    letter-spacing: .6px;
    text-transform: uppercase;
    cursor: pointer;
    text-decoration: none;
}

.ffem-nav-create {
    background: var(--gold);
    color: var(--header);
    border: none;
    border-radius: 999px;
    padding: 9px 16px;
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 14px;
    letter-spacing: .6px;
    text-transform: uppercase;
    cursor: pointer;
    text-decoration: none;
}

.ffem-roles {
    display: flex;
    align-items: center;
    background: var(--track);
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 999px;
    padding: 3px;
    margin-left: 2px;
}

.ffem-roles-label {
    font-family: var(--font-display);
    font-size: 10px;
    letter-spacing: 1px;
    color: var(--txt-faint-2);
    text-transform: uppercase;
    padding: 0 8px;
}

.ffem-role {
    background: none;
    color: var(--txt-muted);
    border: none;
    border-radius: 999px;
    padding: 6px 12px;
    font-family: var(--font-display);
    font-weight: 600;
    font-size: 12px;
    letter-spacing: .5px;
    text-transform: uppercase;
    cursor: pointer;
}

    .ffem-role.is-active {
        background: var(--gold);
        color: var(--header);
        font-weight: 700;
    }

/* ---------------- generic ---------------- */
.ffem-main {
    max-width: 1120px;
    margin: 0 auto;
    padding: 0 16px 64px;
}

.ffem-main--narrow {
    max-width: 880px;
}

.ffem-main--profile {
    max-width: 760px;
}

.ffem-back {
    background: none;
    border: none;
    color: var(--txt-muted);
    font-size: 14px;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 0;
    margin-bottom: 14px;
    text-decoration: none;
}

.ffem-hero-title {
    font-family: var(--font-display);
    font-weight: 800;
    font-size: clamp(32px,6.5vw,58px);
    line-height: .92;
    text-transform: uppercase;
    letter-spacing: .5px;
}

.ffem-gold {
    color: var(--gold);
}

.ffem-subhead {
    margin: 10px 0 0;
    color: var(--txt-muted);
    font-size: 15px;
}

/* sport tags */
.ffem-tag {
    display: inline-flex;
    align-items: center;
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 11px;
    letter-spacing: 1px;
    text-transform: uppercase;
    padding: 3px 9px;
    border-radius: 6px;
}

.ffem-tag--mma {
    background: rgba(229,72,77,.18);
    color: #e5484d;
}

.ffem-tag--boxing {
    background: rgba(59,130,246,.18);
    color: #3b82f6;
}

.ffem-tag--muay-thai {
    background: rgba(139,92,246,.18);
    color: #8b5cf6;
}

.ffem-tag--jiu-jitsu {
    background: rgba(47,191,113,.18);
    color: #2fbf71;
}

.ffem-tag--more {
    background: rgba(154,163,173,.16);
    color: var(--txt-muted);
}
/* tags overlaying a poster image need a dark backing to stay legible */
.ffem-detail-poster-tags .ffem-tag {
    background: rgba(10,13,18,.72);
    backdrop-filter: blur(3px);
    text-shadow: 0 1px 2px rgba(0,0,0,.5);
}

.ffem-detail-poster-tags .ffem-tag--mma {
    color: #ff7b7f;
}

.ffem-detail-poster-tags .ffem-tag--boxing {
    color: #7db0ff;
}

.ffem-detail-poster-tags .ffem-tag--muay-thai {
    color: #b79cff;
}

.ffem-detail-poster-tags .ffem-tag--jiu-jitsu {
    color: #63d99a;
}

/* poster gradients */
.ffem-poster--mma {
    background: linear-gradient(140deg,#3a1115,#7c1d24);
}

.ffem-poster--boxing {
    background: linear-gradient(140deg,#0e1f3a,#1d4a86);
}

.ffem-poster--muay-thai {
    background: linear-gradient(140deg,#241036,#522a86);
}

.ffem-poster--jiu-jitsu {
    background: linear-gradient(140deg,#0f2a1c,#1c6644);
}

/* status pills */
.ffem-pill {
    display: inline-flex;
    align-items: center;
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 11px;
    letter-spacing: 1px;
    text-transform: uppercase;
    padding: 3px 9px;
    border-radius: 6px;
}

.ffem-pill--upcoming {
    background: rgba(47,191,113,.16);
    color: #2fbf71;
}

.ffem-pill--today {
    background: var(--gold);
    color: var(--header);
}

.ffem-pill--complete {
    background: var(--dark-gray);
    color: var(--light-gray);
}

.ffem-pill--cancelled {
    background: rgba(229,72,77,.16);
    color: #e5484d;
}
/* bout statuses */
.ffem-pill--not-started {
    background: rgba(154,163,173,.16);
    color: #9aa3ad;
}

.ffem-pill--in-progress {
    background: rgba(59,130,246,.16);
    color: #3b82f6;
}

/* ---------------- search ---------------- */
.ffem-filter {
    background: var(--panel);
    border: 1px solid rgba(255,255,255,.08);
    border-radius: 14px;
    padding: 16px;
}
/* Filter collapse toggle: hidden on desktop, the filter body is always shown. */
.ffem-filter-toggle {
    display: none;
}

.ffem-filter-row {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    align-items: flex-end;
}

.ffem-field {
    flex: 1;
    min-width: 130px;
}

.ffem-label {
    font-family: var(--font-display);
    font-size: 11px;
    letter-spacing: 1px;
    color: var(--txt-faint);
    text-transform: uppercase;
    margin-bottom: 6px;
    display: block;
}

.ffem-input, .ffem-select {
    width: 100%;
    background: var(--inset);
    border: 1px solid rgba(255,255,255,.14);
    color: #fff;
    border-radius: 9px;
    padding: 11px 12px;
    font-size: 14px;
    font-family: var(--font-body);
}

.ffem-select {
    cursor: pointer;
}

.ffem-input[type=date] {
    color-scheme: dark;
    padding: 10px 12px;
}

.ffem-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 14px;
    align-items: center;
}

.ffem-chip {
    font-family: var(--font-display);
    font-weight: 600;
    font-size: 13px;
    letter-spacing: .5px;
    text-transform: uppercase;
    padding: 8px 14px;
    border-radius: 999px;
    cursor: pointer;
    background: var(--inset);
    color: #aeb4bb;
    border: 1px solid rgba(255,255,255,.14);
}

    .ffem-chip.is-active {
        background: var(--gold);
        color: var(--header);
        border: 1px solid var(--gold);
    }

.ffem-chip--locked {
    color: #6b7178;
    border: 1px dashed rgba(255,255,255,.18);
}

.ffem-clear {
    margin-left: auto;
    background: none;
    border: none;
    color: var(--txt-faint);
    font-size: 13px;
    cursor: pointer;
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* On mobile the filters collapse behind a "Filter" toggle, collapsed by default. */
@media (max-width: 768px) {
    .ffem-filter-toggle {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 8px;
        width: 100%;
        background: none;
        border: none;
        padding: 0;
        cursor: pointer;
        color: #fff;
        font-family: var(--font-display);
        font-weight: 700;
        font-size: 15px;
        letter-spacing: .5px;
        text-transform: uppercase;
    }

        .ffem-filter-toggle .fa-search {
            color: var(--gold);
            margin-right: 6px;
        }

    .ffem-filter-caret {
        color: var(--gold);
        transition: transform .2s ease;
    }

    .ffem-filter-toggle[aria-expanded="true"] .ffem-filter-caret {
        transform: rotate(180deg);
    }

    .ffem-filter-body {
        display: none;
        margin-top: 14px;
    }

        .ffem-filter-body.is-open {
            display: block;
        }
    /* Pair filter fields into an even 2-up grid so none sit ragged at partial
     width (DOM order pairs Zip+Within, Promotion+Status, From+To). The inline
     min-widths that drive desktop wrapping are neutralized here. */
    .ffem-filter-row {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 12px;
        align-items: end;
    }

        .ffem-filter-row .ffem-field {
            min-width: 0 !important;
        }
}

.ffem-results-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin: 22px 2px 12px;
    gap: 12px;
    flex-wrap: wrap;
}

.ffem-results-count {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 22px;
    text-transform: uppercase;
    letter-spacing: .5px;
}

    .ffem-results-count span {
        color: var(--txt-faint);
        font-size: 16px;
    }

.ffem-seg {
    display: flex;
    background: var(--inset);
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 999px;
    padding: 3px;
}

.ffem-seg-btn {
    background: none;
    color: var(--txt-muted);
    border: none;
    border-radius: 999px;
    padding: 6px 14px;
    font-family: var(--font-display);
    font-weight: 600;
    font-size: 12px;
    letter-spacing: .5px;
    text-transform: uppercase;
    cursor: pointer;
}

    .ffem-seg-btn.is-active {
        background: var(--gold);
        color: var(--header);
        font-weight: 700;
    }

.ffem-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(min(100%,330px),1fr));
    gap: 16px;
    align-items: start;
}

.ffem-card {
    background: #fff;
    border-radius: 14px;
    overflow: hidden;
    cursor: pointer;
    box-shadow: 0 2px 12px rgba(0,0,0,.3);
    display: flex;
    flex-direction: column;
    text-decoration: none;
    color: var(--ink);
}
/* gradient fallback keeps a landscape frame; a real poster shows at its natural ratio */
.ffem-card-poster {
    position: relative;
}

    .ffem-card-poster:not(.ffem-card-poster--img) {
        aspect-ratio: 1.91 / 1;
    }

.ffem-card-poster-img {
    display: block;
    width: 100%;
    height: auto;
}
/* On mobile the card becomes horizontal: a compact square poster on the left
   with the details beside it, so several events fit on screen at once. The
   poster stretches to the body's height (align-items:stretch on the card). */
@media (max-width: 768px) {
    .ffem-grid {
        gap: 12px;
    }
    /* Horizontal card: an inset 74px rounded poster thumb + text column (mobile
     design). The card's own 10px padding frames the thumb; the thumb stretches
     to the text column's height (align-items:stretch), so no leftover space. */
    .ffem-card {
        flex-direction: row;
        align-items: stretch;
        padding: 10px;
        box-shadow: 0 3px 14px rgba(0,0,0,.32);
    }

    .ffem-card-poster {
        width: 74px;
        flex: none;
        align-self: stretch;
        border-radius: 9px;
        overflow: hidden;
    }

        .ffem-card-poster:not(.ffem-card-poster--img) {
            aspect-ratio: auto;
            height: auto;
        }

    .ffem-card-poster-img {
        height: 100%;
        object-fit: cover;
    }

    .ffem-card-body {
        padding: 0;
        min-width: 0;
    }
    /* Row 1 (tags + status) never wraps — open-spots lives on the poster now. */
    .ffem-card-meta {
        margin-bottom: 0;
        gap: 6px;
    }

    .ffem-card-meta-l {
        gap: 5px;
    }

    .ffem-card .ffem-tag,
    .ffem-card .ffem-pill {
        font-size: 10px;
        padding: 2px 6px;
        letter-spacing: .4px;
    }

    .ffem-card-title {
        font-size: 18px;
        margin-top: 5px;
    }

    .ffem-card-promo {
        margin-top: 2px;
        font-size: 11.5px;
    }

    .ffem-card-foot {
        margin-top: 5px;
        padding-top: 0;
    }
}

.ffem-date-chip {
    position: absolute;
    bottom: 12px;
    left: 12px;
    background: rgba(0,0,0,.55);
    backdrop-filter: blur(2px);
    border-radius: 9px;
    padding: 5px 10px;
    display: flex;
    align-items: baseline;
    gap: 6px;
    color: #fff;
}

    .ffem-date-chip .m {
        font-family: var(--font-display);
        font-weight: 700;
        font-size: 13px;
        letter-spacing: 1px;
        color: var(--gold);
    }

    .ffem-date-chip .d {
        font-family: var(--font-display);
        font-weight: 800;
        font-size: 22px;
        line-height: 1;
    }

    .ffem-date-chip .y {
        font-size: 11px;
        opacity: .8;
    }

.ffem-open-chip {
    background: var(--gold);
    color: var(--header);
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 10px;
    letter-spacing: .8px;
    text-transform: uppercase;
    padding: 4px 8px;
    border-radius: 6px;
}
/* Open-spots reads as a solid dark bar across the bottom of the poster thumb
   (gold text), not a gold pill or a body tag — keeps the tag/status row to one
   line and stays legible over any poster art. */
.ffem-card-poster .ffem-open-chip {
    position: absolute;
    left: 5px;
    right: 5px;
    bottom: 5px;
    z-index: 1;
    justify-content: center;
    text-align: center;
    background: rgba(0,0,0,.82);
    color: var(--gold);
    font-size: 8.5px;
    letter-spacing: .5px;
    padding: 3px 4px;
    border-radius: 5px;
    box-shadow: none;
}

.ffem-card-body {
    padding: 13px 15px 15px;
    color: var(--ink);
    flex: 1;
    display: flex;
    flex-direction: column;
}
/* tags + open-spots on the left, status pill on the right — above the title */
.ffem-card-meta {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 9px;
}

.ffem-card-meta-l {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
}

.ffem-card-title {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 22px;
    line-height: 1;
    text-transform: uppercase;
    letter-spacing: .3px;
}

.ffem-card-loc {
    color: var(--ink-muted);
    font-size: 13px;
}

.ffem-card-date {
    color: var(--gold-darker);
    font-weight: 600;
}

.ffem-card-foot {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: auto;
    padding-top: 12px;
}

.ffem-card-promo {
    color: #8a9099;
    font-size: 12px;
    margin-bottom: 6px
}

.ffem-card-int {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    color: var(--ink);
    font-size: 12px;
    font-weight: 600;
    text-align: righ
}

    .ffem-card-int .star {
        color: var(--gold-date);
    }

.ffem-card-miles {
    margin-top: 6px;
    font-size: 11px;
    color: #2f9e63;
    font-weight: 600;
}

.ffem-empty {
    text-align: center;
    padding: 60px 20px;
    color: var(--txt-faint);
}

.ffem-empty-title {
    font-family: var(--font-display);
    font-size: 26px;
    text-transform: uppercase;
    color: #aeb4bb;
}

.ffem-pager {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
    margin-top: 26px;
}

.ffem-pager-btn {
    border: 1px solid rgba(255,255,255,.18);
    border-radius: 9px;
    padding: 9px 16px;
    font-family: var(--font-display);
    font-weight: 600;
    letter-spacing: .5px;
    text-transform: uppercase;
    font-size: 14px;
    background: var(--inset);
    color: var(--txt-2);
    cursor: pointer;
    text-decoration: none;
}

    .ffem-pager-btn.is-disabled {
        opacity: .4;
        pointer-events: none;
    }

.ffem-pager-label {
    color: var(--txt-muted);
    font-size: 14px;
}

/* ---------------- dashboard ---------------- */
.ffem-dash-title {
    font-family: var(--font-display);
    font-weight: 800;
    font-size: clamp(30px,6vw,46px);
    text-transform: uppercase;
    line-height: .9;
}

.ffem-tiles {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%,260px),1fr));
    gap: 14px;
    margin-bottom: 30px;
}

.ffem-tile {
    text-align: left;
    border: none;
    border-radius: 14px;
    padding: 20px;
    cursor: pointer;
    text-decoration: none;
    display: block;
}

.ffem-tile--light {
    background: #fff;
    color: var(--ink);
}

.ffem-tile--gold {
    background: var(--gold);
    color: var(--header);
}

.ffem-tile-icon {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 14px;
}

.ffem-tile--light .ffem-tile-icon {
    background: var(--ink);
    color: var(--gold);
    font-size: 18px;
}

.ffem-tile--gold .ffem-tile-icon {
    background: var(--header);
    color: var(--gold);
    font-size: 22px;
}

.ffem-tile-title {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 22px;
    text-transform: uppercase;
    line-height: 1;
}

.ffem-tile p {
    font-size: 13px;
    margin: 6px 0 0;
}

.ffem-tile--light p {
    color: var(--ink-muted);
}

.ffem-tile--gold p {
    color: rgba(10,12,14,.7);
}

.ffem-section-head {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 16px;
}

    .ffem-section-head h2 {
        font-family: var(--font-display);
        font-weight: 800;
        font-size: 26px;
        text-transform: uppercase;
        letter-spacing: .5px;
        margin: 0;
    }

.ffem-rule {
    height: 1px;
    flex: 1;
    background: rgba(255,255,255,.1);
}

.ffem-count {
    color: var(--txt-faint);
    font-size: 13px;
}

.ffem-rows {
    display: flex;
    flex-direction: column;
    gap: 11px;
}

.ffem-row {
    display: flex;
    align-items: center;
    gap: 14px;
    background: #fff;
    border-radius: 13px;
    padding: 12px 14px;
    color: var(--ink);
    flex-wrap: wrap;
}

.ffem-row-date {
    width: 62px;
    flex: none;
    text-align: center;
    color: #fff;
    border-radius: 9px;
    padding: 8px 4px;
}

    .ffem-row-date .m {
        font-family: var(--font-display);
        font-weight: 700;
        font-size: 12px;
        color: var(--gold);
        letter-spacing: 1px;
    }

    .ffem-row-date .d {
        font-family: var(--font-display);
        font-weight: 800;
        font-size: 24px;
        line-height: .9;
    }

.ffem-row-main {
    flex: 1;
    min-width: 170px;
}

.ffem-row-meta {
    display: flex;
    align-items: center;
    gap: 7px;
    flex-wrap: wrap;
    margin-bottom: 3px;
}

.ffem-row-open {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 10px;
    letter-spacing: .8px;
    text-transform: uppercase;
    color: var(--gold-dark);
}

.ffem-row-title {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 20px;
    text-transform: uppercase;
    line-height: 1;
}

.ffem-row-sub {
    color: var(--ink-muted);
    font-size: 12.5px;
    margin-top: 3px;
}

    .ffem-row-sub .star {
        color: var(--gold-date);
    }

.ffem-row-actions {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.ffem-btn-view {
    background: var(--soft-3);
    border: 1px solid #e0e2e6;
    color: var(--ink);
    border-radius: 8px;
    padding: 9px 14px;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    text-decoration: none;
}

.ffem-btn-results {
    border-radius: 8px;
    padding: 9px 14px;
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 14px;
    letter-spacing: .5px;
    text-transform: uppercase;
    cursor: pointer;
    text-decoration: none;
    background: #fff;
    border: 1px solid var(--line-2);
    color: var(--ink-muted);
}

    .ffem-btn-results.is-hot {
        background: var(--gold);
        border: none;
        color: var(--header);
    }

.ffem-btn-edit {
    background: var(--ink);
    border: none;
    color: #fff;
    border-radius: 8px;
    padding: 9px 16px;
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 14px;
    letter-spacing: .5px;
    text-transform: uppercase;
    cursor: pointer;
    text-decoration: none;
}

/* Dashboard mobile: keep the two action tiles side by side, and stack each
   manage card — date + meta on top, then [View | Manage results], then a
   full-width Edit — as 44px pill buttons (matches the mobile design). */
@media (max-width: 768px) {
    .ffem-tiles {
        grid-template-columns: 1fr 1fr;
        gap: 12px;
    }

    .ffem-tile {
        min-height: 172px;
        padding: 16px;
    }

    .ffem-row {
        flex-wrap: wrap;
        align-items: flex-start;
        gap: 12px;
        padding: 15px;
        border-radius: 15px;
    }

    .ffem-row-date {
        width: 52px;
        height: 52px;
        padding: 0;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        border-radius: 11px;
    }

    .ffem-row-main {
        flex: 1;
        min-width: 0;
    }

    .ffem-row-actions {
        flex: 1 1 100%;
        gap: 10px;
    }

        .ffem-row-actions .ffem-btn-view,
        .ffem-row-actions .ffem-btn-results,
        .ffem-row-actions .ffem-btn-edit {
            min-height: 44px;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            border-radius: 999px;
        }

        .ffem-row-actions .ffem-btn-view {
            flex: 1;
        }

        .ffem-row-actions .ffem-btn-results {
            flex: 2;
        }

        .ffem-row-actions .ffem-btn-edit {
            flex: 1 1 100%;
        }

    [data-screen="dashboard"] .ffem-section-head {
        justify-content: space-between;
    }

        [data-screen="dashboard"] .ffem-section-head .ffem-rule {
            display: none;
        }
}

.ffem-empty-panel {
    text-align: center;
    padding: 54px 20px;
    border: 1px dashed rgba(255,255,255,.14);
    border-radius: 14px;
    color: var(--txt-faint);
}

/* ---------------- details ---------------- */
.ffem-detail-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%,320px),1fr));
    gap: 22px;
    align-items: start;
}

.ffem-detail-poster {
    border-radius: 16px;
    aspect-ratio: 1.91 / 1;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding: 22px;
    position: relative;
    overflow: hidden;
}
/* On mobile the stacked hero poster is a full-width empty gradient; trim the
   aspect-ratio strip down so it reads as a banner instead of dead space. */
@media (max-width: 768px) {
    .ffem-detail-poster {
        aspect-ratio: auto;
        height: 150px;
    }
}
/* real poster: show at its natural aspect ratio, no letterboxing */
.ffem-detail-poster-img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 16px;
    align-self: start;
    aspect-ratio: 1 / 1.5
}

.ffem-detail-poster-tags {
    position: absolute;
    top: 18px;
    left: 18px;
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
}

.ffem-detail-poster-title {
    font-family: var(--font-display);
    font-weight: 800;
    font-size: clamp(30px,5vw,46px);
    line-height: .92;
    text-transform: uppercase;
    color: #fff;
    text-shadow: 0 2px 18px rgba(0,0,0,.45);
}

.ffem-detail-poster-promo {
    color: var(--gold);
    font-family: var(--font-display);
    font-weight: 600;
    font-size: 18px;
    letter-spacing: .5px;
    margin-top: 6px;
    text-transform: uppercase;
}
/* promotion name shown in the details column (moved off the poster image) */
.ffem-detail-promo {
    color: var(--gold);
    font-family: var(--font-display);
    font-weight: 600;
    font-size: 18px;
    letter-spacing: .5px;
    margin: -8px 0 14px;
    text-transform: uppercase;
}

.ffem-h1 {
    font-family: var(--font-display);
    font-weight: 800;
    font-size: clamp(30px,5vw,44px);
    line-height: .94;
    text-transform: uppercase;
    margin: 0 0 14px;
}

.ffem-meta-rows {
    display: flex;
    flex-direction: column;
    gap: 11px;
    margin-bottom: 20px;
}

.ffem-meta-row {
    display: flex;
    gap: 11px;
    align-items: flex-start;
}

    .ffem-meta-row .ic {
        color: var(--gold);
        width: 20px;
        text-align: center;
    }

    .ffem-meta-row .sub {
        color: var(--txt-muted);
        font-size: 13px;
    }

.ffem-actions {
    display: flex;
    gap: 10px;
    flex-wrap: nowrap;
    margin-bottom: 14px;
}

.ffem-btn-tickets {
    flex: 1;
    min-width: 0;
    text-align: center;
    background: var(--gold);
    color: var(--header);
    text-decoration: none;
    border-radius: 11px;
    padding: 12px;
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 18px;
    letter-spacing: .8px;
    text-transform: uppercase;
}

.ffem-btn-watch {
    flex: 1;
    min-width: 0;
    text-align: center;
    background: var(--panel);
    color: #fff;
    text-decoration: none;
    border: 1.5px solid rgba(255,255,255,.18);
    border-radius: 11px;
    padding: 12px;
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 18px;
    letter-spacing: .8px;
    text-transform: uppercase;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}
/* Smaller ticket/watch labels on mobile. */
@media (max-width: 768px) {
    .ffem-btn-tickets, .ffem-btn-watch {
        font-size: 12px;
    }
}

.ffem-actions2 {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    align-items: stretch;
}

.ffem-btn-pill {
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    border-radius: 11px;
    padding: 10px 12px;
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 15px;
    letter-spacing: .5px;
    text-transform: uppercase;
    cursor: pointer;
    background: var(--panel);
    border: 1.5px solid rgba(255,255,255,.16);
    color: var(--txt-2);
}

.ffem-btn-interested.is-on {
    background: rgba(255,196,0,.18);
    border: 1.5px solid var(--gold);
    color: var(--gold);
}
/* "View Fight Card" text link under the ticket/watch buttons */
.ffem-viewcard-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: none;
    border: none;
    padding: 0;
    margin: 14px 0;
    color: var(--gold);
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 13px;
    letter-spacing: .8px;
    text-transform: uppercase;
    cursor: pointer;
}

    .ffem-viewcard-link:hover {
        text-decoration: underline;
    }
/* Interested + share/save row: each control is its own bordered pill, so the
   selected (gold) outline stays on Interested and the icons keep the gray one. */
.ffem-interest-bar {
    display: flex;
    align-items: stretch;
    gap: 8px;
    margin-top: 14px;
}

.ffem-interest-main {
    flex: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    background: var(--panel);
    border: 1.5px solid rgba(255,255,255,.16);
    border-radius: 11px;
    padding: 11px 10px;
    color: var(--txt-2);
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 15px;
    letter-spacing: .5px;
    text-transform: uppercase;
    cursor: pointer;
}

    .ffem-interest-main.is-on {
        background: rgba(255,196,0,.14);
        border-color: var(--gold);
        color: var(--gold);
    }

    .ffem-interest-main .star {
        font-size: 15px;
    }

    .ffem-interest-main .count {
        opacity: .8;
        font-weight: 500;
    }

.ffem-interest-icons {
    display: flex;
    gap: 8px;
}

.ffem-interest-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    background: var(--panel);
    border: 1.5px solid rgba(255,255,255,.16);
    border-radius: 11px;
    color: var(--txt-2);
    font-size: 16px;
    cursor: pointer;
    text-decoration: none;
}

    .ffem-interest-icon:hover {
        color: var(--gold);
        border-color: rgba(255,255,255,.32);
    }

.ffem-desc {
    color: #b6bcc3;
    font-size: 14px;
    line-height: 1.6;
    margin-top: 20px;
}

.ffem-fight-panel {
    margin-top: 30px;
    border: 1px solid rgba(255,196,0,.28);
    border-radius: 14px;
    padding: 10px;
}

.ffem-fight-toggle {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    width: 100%;
    background: none;
    border: 0;
    padding: 0;
    text-align: left;
    cursor: pointer;
    color: var(--gold);
}

    .ffem-fight-toggle h3 {
        font-family: var(--font-display);
        font-weight: 800;
        font-size: 20px;
        text-transform: uppercase;
        margin: 0;
        color: white;
    }

    .ffem-fight-toggle i {
        display: inline-block;
        font-size: 15px;
        transition: transform .18s ease;
    }

    .ffem-fight-toggle[aria-expanded="true"] i {
        transform: rotate(180deg);
    }

.ffem-fight-body {
    margin-top: 14px;
}

.ffem-fight-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
}

    .ffem-fight-head p {
        color: var(--txt-2);
        font-size: 14px;
        line-height: 1.5;
        margin: 0;
        max-width: 540px;
    }

.ffem-btn-contact {
    background: var(--header);
    color: var(--gold);
    border: 1px solid var(--gold);
    border-radius: 10px;
    padding: 14px 22px;
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 16px;
    letter-spacing: .5px;
    text-transform: uppercase;
    cursor: pointer;
    white-space: nowrap;
}

.ffem-gate-msg {
    margin-top: 12px;
    color: #e0b94d;
    font-size: 13.5px;
}

.ffem-contact-card {
    margin-top: 16px;
    background: #10151a;
    border: 1px solid rgba(255,255,255,.1);
    border-radius: 11px;
    padding: 16px;
}

.ffem-contact-name {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 18px;
    text-transform: uppercase;
}

.ffem-contact-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 18px;
    margin-top: 10px;
    color: var(--txt-2);
    font-size: 14px;
}

    .ffem-contact-grid label {
        color: var(--txt-faint);
        font-size: 12px;
        display: block;
        text-transform: uppercase;
        letter-spacing: .5px;
    }

.ffem-contact-note {
    margin-top: 12px;
    color: var(--txt-muted);
    font-size: 13px;
    font-style: italic;
}

.ffem-contact-cap {
    margin-top: 14px;
    background: rgba(255,196,0,.12);
    border-radius: 8px;
    padding: 9px 12px;
    color: var(--gold);
    font-size: 13px;
    font-weight: 600;
}

.ffem-fightcard {
    margin-top: 38px;
    scroll-margin-top: 72px;
}

.ffem-claim {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    background: rgba(255,255,255,.03);
    border: 1px solid rgba(255,255,255,.1);
    border-radius: 11px;
    padding: 11px 14px;
    margin-bottom: 14px;
}

.ffem-claim-sub {
    flex: 1;
    min-width: 200px;
    font-size: 13.5px;
    color: var(--txt-2);
}

.ffem-btn-signup {
    background: none;
    color: var(--gold);
    border: 1px solid rgba(255,196,0,.5);
    border-radius: 8px;
    padding: 8px 14px;
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 12px;
    letter-spacing: .5px;
    text-transform: uppercase;
    cursor: pointer;
    white-space: nowrap;
}

.ffem-bouts {
    display: flex;
    flex-direction: column;
    gap: 11px;
}

.ffem-bout {
    background: var(--panel);
    border: 1px solid rgba(255,255,255,.15);
    border-radius: 8px;
    padding: 15px 16px;
}

.ffem-bout--main {
    background: rgba(255,196,0,.05);
    border: 1px solid rgba(255,196,0,.3);
}

.ffem-bout-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 12px;
    flex-wrap: wrap;
    gap: 6px;
}

.ffem-bout-head-l {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.ffem-badge-main {
    background: var(--gold);
    color: var(--header);
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 11px;
    letter-spacing: 1px;
    text-transform: uppercase;
    padding: 3px 8px;
    border-radius: 5px;
}

.ffem-badge-co {
    background: rgba(255,196,0,.16);
    color: var(--gold);
    border: 1px solid rgba(255,196,0,.5);
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 11px;
    letter-spacing: 1px;
    text-transform: uppercase;
    padding: 2px 8px;
    border-radius: 5px;
}

.ffem-bout-meta {
    font-family: var(--font-display);
    font-weight: 600;
    font-size: 13px;
    letter-spacing: .5px;
    color: var(--txt-2);
    text-transform: uppercase;
}

.ffem-bout-title {
    color: var(--gold);
    font-size: 12px;
    font-weight: 600;
}

.ffem-open-bout {
    display: flex;
    align-items: center;
    gap: 11px;
    border: 1px dashed rgba(255,196,0,.4);
    border-radius: 9px;
    padding: 13px 15px;
}

.ffem-open-bout-tag {
    font-family: var(--font-display);
    font-weight: 800;
    font-size: 13px;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: white;
    border-radius: 6px;
    border: 1px solid #ffd70085;
    padding: 4px 9px;
    white-space: nowrap;
}

.ffem-open-bout-note {
    color: var(--txt-2);
    font-size: 13.5px;
    line-height: 1.4;
}

.ffem-matchup {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 10px;
}

.ffem-vs {
    font-family: var(--font-display);
    font-weight: 800;
    font-size: 18px;
    color: var(--gold);
    background: rgba(255,196,0,.1);
    border-radius: 8px;
    padding: 5px 9px;
}

.ffem-f-name {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: clamp(15px,3.2vw,20px);
    text-transform: uppercase;
    line-height: 1;
}

    .ffem-f-name.is-link {
        cursor: pointer;
        text-decoration: underline;
        text-decoration-color: rgba(255,196,0,.5);
        text-underline-offset: 3px;
    }

    .ffem-f-name.is-winner {
        color: var(--gold);
    }

.ffem-win-tag {
    display: inline-block;
    background: var(--gold);
    color: var(--header);
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 10px;
    letter-spacing: 1px;
    text-transform: uppercase;
    padding: 2px 7px;
    border-radius: 5px;
    margin-bottom: 5px;
}

.ffem-f-sub {
    font-size: 12px;
    margin-top: 3px;
    color: #8a9099;
}

    .ffem-f-sub.is-open {
        color: var(--gold-dark);
    }

.ffem-f-rec {
    color: var(--green);
    font-size: 12px;
    font-weight: 600;
    margin-top: 2px;
}

.ffem-f-profile {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    margin-top: 6px;
    color: $lightgray;
    font-size: 11.5px;
    font-weight: 600;
    cursor: pointer;
    text-transform: uppercase;
    letter-spacing: .4px;
    font-family: var(--font-display);
    text-decoration: none;
}

.ffem-result-line {
    margin-top: 11px;
    text-align: center;
    font-size: 13px;
    color: var(--gold);
    font-weight: 600;
    border-top: 1px solid rgba(255,255,255,.08);
    padding-top: 10px;
}

.ffem-tba {
    color: var(--txt-faint);
    padding: 24px;
    text-align: center;
    border: 1px dashed rgba(255,255,255,.12);
    border-radius: 12px;
}

/* ---------------- fighter profile ---------------- */
.ffem-prof-card {
    display: flex;
    gap: 20px;
    align-items: center;
    flex-wrap: wrap;
    background: var(--panel);
    border: 1px solid rgba(255,255,255,.08);
    border-radius: 16px;
    padding: 22px;
}

.ffem-prof-avatar {
    width: 96px;
    height: 96px;
    border-radius: 50%;
    background: linear-gradient(140deg,#2a3138,#10141a);
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--font-display);
    font-weight: 800;
    font-size: 34px;
    color: var(--gold);
    flex: none;
}

.ffem-prof-name {
    font-family: var(--font-display);
    font-weight: 800;
    font-size: clamp(28px,5vw,40px);
    text-transform: uppercase;
    line-height: .95;
}

.ffem-prof-nick {
    color: var(--gold);
    font-style: italic;
    font-size: 16px;
    margin-top: 2px;
}

.ffem-prof-gym {
    color: var(--txt-muted);
    font-size: 14px;
    margin-top: 6px;
}

.ffem-prof-records-h {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 18px;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: var(--txt-faint);
    margin: 24px 0 12px;
}

.ffem-prof-record {
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: var(--panel);
    border: 1px solid rgba(255,255,255,.08);
    border-radius: 11px;
    padding: 14px 16px;
}

    .ffem-prof-record .rec {
        font-family: var(--font-display);
        font-weight: 800;
        font-size: 24px;
    }

/* ---------------- toast ---------------- */
.ffem-toast {
    position: fixed;
    left: 50%;
    bottom: 26px;
    transform: translateX(-50%);
    background: var(--gold);
    color: var(--header);
    font-weight: 600;
    padding: 13px 22px;
    border-radius: 11px;
    box-shadow: 0 8px 30px rgba(0,0,0,.4);
    z-index: 90;
    animation: ffem-toast 3000s ease forwards;
    font-size: 14px;
    max-width: 90vw;
    text-align: center;
    display: flex;
    align-items: center;
    gap: 11px;
}

.ffem-toast--gate {
    left: 50%;
    top: 84px;
    bottom: auto;
    background: var(--header);
    color: #fff;
    border: 1.5px solid var(--gold);
    padding: 16px 22px;
    border-radius: 13px;
    box-shadow: 0 12px 40px rgba(0,0,0,.55);
    z-index: 95;
    animation: ffem-toast 6.5s ease forwards;
    font-size: 15px;
    line-height: 1.35;
    max-width: min(440px,92vw);
    text-align: left;
}

.ffem-toast .ic {
    font-size: 22px;
    flex: none;
}

/* ===========================================================================
   LIGHT SCREENS — Results & Create/Edit
   =========================================================================== */
.ffem--light {
    background: #fff;
    color: var(--ink);
}

    .ffem--light .ffem-main {
        color: var(--ink);
    }

.ffem-sheet {
    background: #fff;
    color: var(--ink);
    min-height: 100vh;
}

.ffem-sheet-inner {
    max-width: 880px;
    margin: 0 auto;
    padding: 22px 16px 130px;
}

.ffem-sheet-inner--editor {
    max-width: 840px;
    padding: 24px 16px 120px;
}
/* Near-full-width editor sheet on mobile: drop the width cap and use a slim
   gutter. A hard padding:0 let the section cards run edge-to-edge but pushed the
   back link, H1, audit line and footer buttons flush against the screen edges. */
@media (max-width: 768px) {
    .ffem-sheet-inner--editor {
        max-width: none;
        padding: 12px 12px 110px;
    }
}

.ffem-back--light {
    color: #6b7178;
}

.ffem-eyebrow {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 12px;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: var(--gold-dark);
    margin-bottom: 4px;
}

.ffem-h1--ink {
    font-family: var(--font-display);
    font-weight: 800;
    font-size: clamp(28px,6vw,42px);
    text-transform: uppercase;
    margin: 0;
    line-height: .95;
    color: white;
}

.ffem-sub--ink {
    color: var(--ink-muted);
    font-size: 14px;
    margin: 8px 0 0;
}

/* share toolbar */
.ffem-share {
    margin-top: 18px;
    border: 1px solid var(--line);
    border-radius: 13px;
    padding: 14px 16px;
    background: var(--soft);
}

.ffem-share-toggle {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    width: 100%;
    background: none;
    border: 0;
    padding: 0;
    cursor: pointer;
    text-align: left;
}

.ffem-share-caret {
    color: var(--ink-muted);
    font-size: 12px;
    transition: transform .15s ease;
}

.ffem-share-toggle[aria-expanded="true"] .ffem-share-caret {
    transform: rotate(180deg);
}

.ffem-share-head {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    flex-wrap: wrap;
}

    .ffem-share-head .grow {
        flex: 1;
        min-width: 220px;
    }

.ffem-share-title {
    font-weight: 700;
    font-size: 14px;
    color: var(--ink);
}

.ffem-share-body {
    color: var(--ink-muted);
    font-size: 13px;
    margin-top: 2px;
}

.ffem-btn-share {
    border-radius: 9px;
    padding: 11px 18px;
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 14px;
    letter-spacing: .5px;
    text-transform: uppercase;
    white-space: nowrap;
    background: var(--ink);
    border: none;
    color: #fff;
    cursor: pointer;
}

    .ffem-btn-share.is-locked {
        background: #eceef1;
        border: 1px solid var(--line-2);
        color: #aab0b8;
        cursor: not-allowed;
    }

.ffem-btn-revoke {
    border-radius: 8px;
    padding: 9px 16px;
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 13px;
    letter-spacing: .5px;
    text-transform: uppercase;
    background: #fff;
    border: 1px solid var(--red);
    color: var(--red);
    cursor: pointer;
}

.ffem-share-locknote {
    margin-top: 10px;
    font-size: 12.5px;
    color: var(--ink-muted-2);
}

    .ffem-share-locknote a {
        color: var(--gold-dark);
        font-weight: 600;
        cursor: pointer;
        text-decoration: underline;
        text-underline-offset: 2px;
    }

.ffem-share-panel {
    margin-top: 13px;
    border-top: 1px solid var(--line);
    padding-top: 13px;
}

.ffem-share-url {
    flex: 1;
    min-width: 200px;
    background: #fff;
    border: 1px solid var(--line-2);
    color: var(--ink);
    border-radius: 8px;
    padding: 10px 11px;
    font-size: 13px;
    font-family: ui-monospace, Menlo, monospace;
}

.ffem-btn-copy {
    background: var(--ink);
    color: #fff;
    border: none;
    border-radius: 8px;
    padding: 10px 16px;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    white-space: nowrap;
}

.ffem-btn-preview {
    background: var(--gold);
    color: var(--header);
    border: none;
    border-radius: 8px;
    padding: 10px 16px;
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
    white-space: nowrap;
    text-decoration: none;
    display: inline-block;
}

.ffem-share-hint {
    color: var(--ink-muted-2);
    font-size: 12px;
    margin-top: 8px;
}

.ffem-banner {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    border-radius: 12px;
    padding: 13px 16px;
    margin-bottom: 18px;
}

    .ffem-banner .grow {
        flex: 1;
        min-width: 200px;
    }

.ffem-banner-title {
    font-weight: 700;
    font-size: 14px;
}

.ffem-banner-body {
    font-size: 13px;
    margin-top: 2px;
    opacity: .85;
}

.ffem-banner--edit {
    background: #f1f3f5;
    border: 1px solid #d8dce0;
    color: #3f454c;
}

.ffem-banner--locked {
    background: #fdecec;
    border: 1px solid #f3b6b6;
    color: #8a2b2b;
}

.ffem-btn-exit {
    background: rgba(0,0,0,.08);
    border: none;
    color: inherit;
    border-radius: 8px;
    padding: 8px 13px;
    font-size: 12.5px;
    font-weight: 600;
    cursor: pointer;
    white-space: nowrap;
    text-decoration: none;
}

/* light cards — the results bout card is a Bootstrap .card; only the type tokens live here */
.ffem-rb-label {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 13px;
    letter-spacing: .5px;
    text-transform: uppercase;
    color: var(--ink);
}

.ffem-rb-caption {
    font-family: var(--font-display);
    font-weight: 600;
    font-size: 12px;
    letter-spacing: .5px;
    color: var(--ink-muted-2);
    text-transform: uppercase;
    margin-top: 4px;
}

.ffem-sec-badge {
    display: inline-flex;
    align-items: center;
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 10px;
    letter-spacing: .8px;
    text-transform: uppercase;
    padding: 2px 7px;
    border-radius: 5px;
}

.ffem-sec-badge--main {
    background: var(--ink);
    color: var(--gold);
}

.ffem-sec-badge--prelim {
    background: #eceef1;
    color: var(--txt-faint);
}

.ffem-reorder {
    display: flex;
    gap: 4px;
}

.ffem-re-btn {
    width: 30px;
    height: 30px;
    border-radius: 7px;
    border: 1px solid var(--line-2);
    background: transparent;
    color: white;
    cursor: pointer;
    font-size: 9px;
    line-height: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
    /* A reorder arrow that can't move (first bout's up / last bout's down) is
   hidden rather than shown disabled. */
    .ffem-re-btn:disabled {
        display: none;
    }

.ffem-winner-label {
    font-family: var(--font-display);
    font-size: 11px;
    letter-spacing: 1px;
    color: var(--txt-faint);
    text-transform: uppercase;
    margin-bottom: 7px;
}

.ffem-winner-grid {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    gap: 8px;
    margin-bottom: 14px;
}

.ffem-win {
    border-radius: 9px;
    padding: 11px 10px;
    font-size: 13px;
    cursor: pointer;
    text-align: center;
    line-height: 1.1;
    background: var(--soft-2);
    border: 1px solid #e0e2e6;
    color: var(--ink-muted);
}

    .ffem-win .nm {
        font-family: var(--font-display);
        font-weight: 700;
        font-size: 15px;
        text-transform: uppercase;
        line-height: 1.05;
        display: block;
    }

    .ffem-win .sb {
        display: block;
        font-size: 11px;
        opacity: .7;
        margin-top: 2px;
    }

    .ffem-win.is-on {
        background: var(--gold);
        border: 1px solid var(--gold);
        color: var(--header);
        box-shadow: 0 2px 8px rgba(255,196,0,.4);
    }

.ffem-win-tie {
    border-radius: 9px;
    padding: 11px 8px;
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 12px;
    letter-spacing: .5px;
    text-transform: uppercase;
    cursor: pointer;
    align-self: stretch;
    background: var(--soft-2);
    border: 1px solid #e0e2e6;
    color: var(--ink-muted);
}

    .ffem-win-tie.is-on {
        background: var(--gold);
        border: 1px solid var(--gold);
        color: var(--header);
        box-shadow: 0 2px 8px rgba(255,196,0,.4);
    }

.ffem-open-notice {
    background: #fff7e0;
    border: 1px dashed #e8c45a;
    border-radius: 9px;
    padding: 11px 13px;
    color: #7a5a00;
    font-size: 13px;
    margin-bottom: 14px;
}

.ffem-field-light {
    width: 100%;
    background: #fff;
    border: 1px solid var(--line-2);
    color: var(--ink);
    border-radius: 8px;
    padding: 10px 11px;
    font-size: 14px;
    font-family: var(--font-body);
}

    .ffem-field-light:disabled {
        background: var(--soft-2);
        border: 1px solid var(--line);
        color: var(--ink-muted-2);
        cursor: not-allowed;
    }
/* Results status dropdown: tinted by bout status, border a darker shade of the fill. */
.ffem-status--not-started {
    background: var(--bs-secondary-bg-subtle);
    border-color: var(--bs-secondary-border-subtle);
}

.ffem-status--in-progress {
    background: var(--bs-primary-bg-subtle);
    border-color: var(--bs-primary-border-subtle);
}

.ffem-status--complete {
    background: var(--bs-success-bg-subtle);
    border-color: var(--bs-success-border-subtle);
}

.ffem-status--cancelled {
    background: var(--bs-danger-bg-subtle);
    border-color: var(--bs-danger-border-subtle);
}

.ffem-fields-row {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

.ffem-flabel {
    display: block;
    font-family: var(--font-display);
    font-size: 14px;
    letter-spacing: 1px;
    color: var(--txt-faint);
    text-transform: uppercase;
    margin-bottom: 5px;
}

.ffem-savebar {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 40;
    background: #fff;
    border-top: 1px solid var(--line);
    box-shadow: 0 -2px 14px rgba(0,0,0,.07);
    padding: 12px 16px;
}

.ffem-savebar-inner {
    max-width: 880px;
    margin: 0 auto;
    display: flex;
    gap: 10px;
    justify-content: flex-end;
    flex-wrap: wrap;
}

.ffem-btn-cancel {
    background: none;
    border: 1px solid var(--line-2);
    color: var(--ink-muted);
    border-radius: 10px;
    padding: 13px 22px;
    font-family: var(--font-display);
    font-weight: 600;
    font-size: 16px;
    letter-spacing: .5px;
    text-transform: uppercase;
    cursor: pointer;
    text-decoration: none;
}

.ffem-btn-save {
    background: var(--gold);
    color: var(--header);
    border: none;
    border-radius: 10px;
    padding: 13px 26px;
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 16px;
    letter-spacing: .6px;
    text-transform: uppercase;
    cursor: pointer;
}

    .ffem-btn-save:disabled, .ffem-btn-save.is-disabled {
        background: #3a3f45;
        color: var(--ink-muted-2);
        cursor: not-allowed;
    }

.ffem-btn-done {
    background: var(--ink);
    color: #fff;
    border: none;
    border-radius: 10px;
    padding: 13px 26px;
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 16px;
    letter-spacing: .6px;
    text-transform: uppercase;
    cursor: pointer;
}

/* ---------------- editor ---------------- */
.ffem-ed-section {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 18px;
    margin-bottom: 16px;
}

.ffem-ed-label {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 20px;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: var(--gold-darker);
    margin-bottom: 16px;
}

.ffem-ed-label--tight {
    margin-bottom: 4px;
}

.ffem-ed-help {
    color: var(--txt-faint);
    font-size: 13px;
    margin: 0 0 14px;
}

.ffem-upload {
    display: flex;
    align-items: center;
    gap: 14px;
    border: 1.5px dashed #cfd4da;
    border-radius: 11px;
    padding: 16px;
    margin-bottom: 16px;
    flex-wrap: wrap;
}

.ffem-upload-thumb {
    width: 120px;
    aspect-ratio: 1 / 1.5;
    border-radius: 9px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: rgba(255,255,255,.5);
    font-size: 26px;
    flex: none;
}

.ffem-upload-grow {
    flex: 1;
    min-width: 180px;
}

    .ffem-upload-grow .t {
        font-weight: 600;
        font-size: 14px;
    }

    .ffem-upload-grow .s {
        color: var(--txt-faint);
        font-size: 12.5px;
        margin-top: 2px;
    }

.ffem-btn-file {
    background: var(--soft-2);
    border: 1px solid var(--line-2);
    color: #3f454c;
    border-radius: 8px;
    padding: 9px 14px;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
}

.ffem-block {
    display: block;
    margin-bottom: 14px;
}

.ffem-input-light {
    width: 100%;
    background: #fff;
    border: 1px solid var(--line-2);
    color: var(--ink);
    border-radius: 9px;
    padding: 11px 12px;
    font-size: 15px;
    font-family: var(--font-body);
}

.ffem-textarea-light {
    width: 100%;
    background: #fff;
    border: 1px solid var(--line-2);
    color: var(--ink);
    border-radius: 9px;
    padding: 11px 12px;
    font-size: 14px;
    resize: vertical;
    font-family: var(--font-body);
}

.ffem-input-light[type=datetime-local] {
    padding: 10px 12px;
    font-size: 14px;
}

.ffem-sport-toggles {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 16px;
}

.ffem-sport-toggle {
    font-family: var(--font-display);
    font-weight: 600;
    font-size: 13px;
    letter-spacing: .5px;
    text-transform: uppercase;
    padding: 8px 14px;
    border-radius: 999px;
    cursor: pointer;
    background: var(--soft-2);
    color: var(--ink-muted);
    border: 1px solid var(--line-2);
}

    .ffem-sport-toggle.is-on {
        background: var(--gold);
        color: var(--header);
        border: 1px solid var(--gold);
        font-weight: 700;
    }

.ffem-promo-selected {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    background: #eafaf0;
    border: 1px solid #1f9a55;
    border-radius: 9px;
    padding: 12px 14px;
}

    .ffem-promo-selected .name {
        font-weight: 600;
        font-size: 15px;
    }

    .ffem-promo-selected .meta {
        color: var(--ink-muted-2);
        font-size: 12.5px;
    }

.ffem-link-muted {
    background: none;
    border: none;
    color: var(--txt-faint);
    cursor: pointer;
    font-size: 13px;
    text-decoration: underline;
    white-space: nowrap;
}

.ffem-promo-results {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-top: 10px;
    max-height: 240px;
    overflow: auto;
}

.ffem-promo-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    width: 100%;
    text-align: left;
    border-radius: 8px;
    padding: 10px 12px;
    font-size: 14px;
    background: #fff;
    border: 1px solid var(--line-2);
    color: var(--ink);
    cursor: pointer;
}

    .ffem-promo-row.is-blocked {
        background: var(--soft-2);
        border: 1px dashed #d0d4d9;
        color: #9aa0a8;
        cursor: not-allowed;
    }

.ffem-promo-badge {
    font-family: var(--font-display);
    font-size: 10px;
    letter-spacing: .6px;
    text-transform: uppercase;
    white-space: nowrap;
    color: #1f9a55;
}

.ffem-promo-row.is-blocked .ffem-promo-badge {
    color: #9aa0a8;
}

.ffem-btn-dashed {
    width: 100%;
    background: none;
    border: 1.5px dashed rgba(255,196,0,.5);
    color: var(--gold-darker);
    border-radius: 9px;
    padding: 10px 14px;
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 13px;
    letter-spacing: .6px;
    text-transform: uppercase;
    cursor: pointer;
    margin-top: 12px;
}

.ffem-newpromo {
    border: 1px solid #e0e2e6;
    border-radius: 11px;
    padding: 15px;
    background: var(--soft);
}

.ffem-toggle-cancel {
    border-radius: 9px;
    padding: 11px 18px;
    font-family: var(--font-display);
    font-weight: 700;
    letter-spacing: .5px;
    text-transform: uppercase;
    font-size: 14px;
    cursor: pointer;
    background: rgba(229,72,77,.14);
    border: 1px solid rgba(229,72,77,.5);
    color: #e5484d;
}

    .ffem-toggle-cancel.is-cancelled {
        background: rgba(47,191,113,.16);
        border: 1px solid #2fbf71;
        color: #2fbf71;
    }

.ffem-cancel-badge {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    background: #fdecec;
    border: 1px solid #f3b6b6;
    border-radius: 11px;
    padding: 11px 15px;
    margin-bottom: 14px;
}

.ffem-cancel-tag {
    display: inline-flex;
    align-items: center;
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 12px;
    letter-spacing: 1px;
    text-transform: uppercase;
    padding: 3px 9px;
    border-radius: 6px;
    background: #e5484d;
    color: #fff;
}

.ffem-cancel-text {
    color: #8a2b2b;
    font-size: 13.5px;
}

/* bout builder */
.ffem-builder {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin: 14px 0;
}
/* overflow must stay visible so the floating gym autocomplete isn't clipped */
.ffem-bbout {
    border: 1px solid var(--line);
    border-radius: 12px;
    background: var(--soft);
    overflow: visible;
}

.ffem-bbout-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    background: var(--soft-3);
    padding: 11px 14px;
    border-bottom: 1px solid var(--line);
    border-radius: 12px 12px 0 0;
}

.ffem-bbout-head-actions {
    display: flex;
    align-items: center;
    gap: 10px;
}
/* open bout toggle + tooltip */
.ffem-openbout .ffem-tip {
    position: relative;
    display: inline-flex;
    width: 16px;
    height: 16px;
    align-items: center;
    justify-content: center;
    color: #6b7885;
    cursor: help;
    font-size: 12px;
}

    .ffem-openbout .ffem-tip::after {
        content: attr(data-ffem-tip);
        position: absolute;
        bottom: calc(100% + 7px);
        left: 50%;
        transform: translateX(-50%);
        width: 200px;
        background: #15181c;
        color: #fff;
        font-size: 11.5px;
        line-height: 1.35;
        padding: 8px 10px;
        border-radius: 7px;
        box-shadow: 0 6px 16px rgba(0,0,0,.22);
        opacity: 0;
        pointer-events: none;
        transition: opacity .12s;
        z-index: 40;
    }

    .ffem-openbout .ffem-tip:hover::after, .ffem-openbout .ffem-tip:focus::after {
        opacity: 1;
    }

.ffem-openbout-copy {
    background: rgba(255,196,0,.07);
    border: 1px dashed rgba(255,196,0,.4);
    border-radius: 8px;
    padding: 12px;
    color: #3f454c;
    font-size: 12.5px;
    line-height: 1.45;
}

    .ffem-openbout-copy b {
        color: var(--gold-darker);
    }

.ffem-bbout-title {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 15px;
    letter-spacing: .5px;
    text-transform: uppercase;
    color: var(--ink);
}

.ffem-btn-remove {
    background: none;
    border: none;
    color: var(--ink-muted-2);
    border-radius: 7px;
    padding: 4px 8px;
    font-size: 12px;
    cursor: pointer;
}

.ffem-bbout-body {
    padding: 14px;
}

.ffem-microlabel {
    font-family: var(--font-display);
    font-size: 11px;
    letter-spacing: 1.5px;
    color: var(--txt-faint);
    text-transform: uppercase;
    margin-bottom: 10px;
}

.ffem-bbout-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(128px,1fr));
    gap: 10px;
}

.ffem-select-sm {
    width: 100%;
    background: #fff;
    border: 1px solid var(--line-2);
    color: var(--ink);
    border-radius: 8px;
    padding: 9px 10px;
    font-size: 13px;
    cursor: pointer;
    font-family: var(--font-body);
}

.ffem-input-sm {
    width: 100%;
    background: #fff;
    border: 1px solid var(--line-2);
    color: var(--ink);
    border-radius: 8px;
    padding: 9px 10px;
    font-size: 13px;
    font-family: var(--font-body);
}

.ffem-controls-col {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
    margin-top: 13px;
}

.ffem-check {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    cursor: pointer;
    font-size: 13.5px;
    color: #3f454c;
}

    .ffem-check input {
        width: 17px;
        height: 17px;
        accent-color: var(--gold-darker);
    }

.ffem-main-note {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    color: var(--ink-muted-2);
}

.ffem-placement {
    display: flex;
    align-items: center;
    gap: 7px;
}

    .ffem-placement .lbl {
        font-family: var(--font-display);
        font-size: 11px;
        letter-spacing: 1px;
        color: var(--txt-faint);
        text-transform: uppercase;
    }

.ffem-seg2 {
    display: flex;
    background: #eceef1;
    border-radius: 8px;
    padding: 2px;
    gap: 2px;
}

.ffem-seg2-btn {
    text-align: center;
    font-family: var(--font-display);
    font-weight: 600;
    font-size: 11px;
    letter-spacing: .5px;
    text-transform: uppercase;
    padding: 7px 10px;
    border-radius: 6px;
    cursor: pointer;
    border: none;
    background: none;
    color: var(--ink-muted-2);
}

    .ffem-seg2-btn.is-on {
        background-color: var(--gold-darker);
        color: black;
        font-weight: 700;
    }

.ffem-fighters-row {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

.ffem-fighter-col {
    flex: 1;
    min-width: 236px;
    background: var(--soft);
    border: 1px solid var(--line);
    border-radius: 10px;
    padding: 12px;
}

.ffem-fighter-col-h {
    font-family: var(--font-display);
    font-size: 12px;
    letter-spacing: 1px;
    color: black;
    text-transform: uppercase;
    margin-bottom: 9px;
}

.ffem-pick-confirm {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    background: #eafaf0;
    border: 1px solid #1f9a55;
    border-radius: 8px;
    padding: 9px 11px;
}

    .ffem-pick-confirm .name {
        font-weight: 600;
        font-size: 14px;
    }

    .ffem-pick-confirm .sub {
        color: var(--ink-muted-2);
        font-size: 12px;
    }

.ffem-fresults {
    margin-top: 6px;
    display: flex;
    flex-direction: column;
    gap: 4px;
    max-height: 148px;
    overflow: auto;
}

.ffem-fresult {
    text-align: left;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 7px;
    padding: 8px 10px;
    cursor: pointer;
    color: var(--ink);
}

    .ffem-fresult .name {
        font-weight: 600;
        font-size: 13px;
    }

    .ffem-fresult .sub {
        color: var(--ink-muted-2);
        font-size: 11.5px;
    }

.ffem-open-mode {
    background: rgba(255,196,0,.07);
    border: 1px dashed rgba(255,196,0,.4);
    border-radius: 8px;
    padding: 11px;
    color: #3f454c;
    font-size: 12.5px;
    line-height: 1.45;
}

    .ffem-open-mode b {
        color: var(--gold-darker);
    }

.ffem-no-results {
    margin-top: 6px;
    color: var(--txt-faint);
    font-size: 12px;
}
/* gym autocomplete: floats over the card instead of expanding it */
.ffem-gdrop {
    position: absolute;
    top: calc(100% + 4px);
    left: 0;
    right: 0;
    z-index: 30;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 8px;
    box-shadow: 0 8px 22px rgba(0,0,0,.13);
    max-height: 210px;
    overflow: auto;
    padding: 4px;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.ffem-gym-note {
    display: flex;
    gap: 6px;
    align-items: flex-start;
    background: #f4f6f9;
    color: var(--ink-muted-2);
    font-size: 11.5px;
    line-height: 1.35;
    border-radius: 6px;
    padding: 7px 9px;
}

    .ffem-gym-note .ic {
        color: #6b7885;
    }

.ffem-mt12 {
    margin-top: 12px;
}

.ffem-mt7 {
    margin-top: 7px;
}

.ffem-contact-default {
    background: var(--soft);
    border: 1px solid var(--line);
    border-radius: 9px;
    padding: 13px;
    color: #3f454c;
    font-size: 13.5px;
}

    .ffem-contact-default .name {
        font-weight: 600;
        color: var(--ink);
    }

.ffem-audit {
    color: var(--ink-muted);
    font-size: 12.5px;
    margin-bottom: 18px;
    line-height: 1.6;
}

.ffem-footer-actions {
    display: flex;
    gap: 10px;
    justify-content: flex-end;
    flex-wrap: wrap;
}

/* ===========================================================================
   EDITOR — DARK THEME (Create / Edit)
   The mobile design flips the editor to the module's dark surface. Scoped to
   the editor screen so the Results sheet keeps its white treatment. Sections
   become flat (no white cards) — separated only by their gold eyebrow labels.
   =========================================================================== */
.ffem-sheet[data-screen="editor"] {
    background: var(--bg);
    color: #fff;
}

[data-screen="editor"] .ffem-h1--ink {
    color: #fff;
}

[data-screen="editor"] .ffem-ed-section {
    background: black;
    border-radius: 8px;
    padding: 10px;
    border: none;
    margin-bottom: 24px;
}

[data-screen="editor"] .ffem-ed-label {
    color: var(--gold);
}

[data-screen="editor"] .ffem-ed-help {
    color: var(--txt-muted);
}

/* fields */
[data-screen="editor"] .ffem-input-light,
[data-screen="editor"] .ffem-textarea-light,
[data-screen="editor"] .ffem-field-light,
[data-screen="editor"] .ffem-input-sm,
[data-screen="editor"] .ffem-select-sm {
    background: #151515;
    border-color: rgba(255,255,255,.14);
    color: #fff;
    color-scheme: dark;
}

    [data-screen="editor"] .ffem-input-light::placeholder,
    [data-screen="editor"] .ffem-textarea-light::placeholder,
    [data-screen="editor"] .ffem-field-light::placeholder,
    [data-screen="editor"] .ffem-input-sm::placeholder {
        color: var(--txt-faint);
    }

    [data-screen="editor"] .ffem-field-light:disabled {
        background: var(--panel);
        border-color: rgba(255,255,255,.08);
        color: var(--txt-faint);
    }

/* sport chips */
[data-screen="editor"] .ffem-sport-toggle {
    background: var(--inset);
    color: var(--txt-muted);
    border-color: rgba(255,255,255,.14);
}

    [data-screen="editor"] .ffem-sport-toggle.is-on {
        background: var(--gold);
        color: black;
    }

/* image upload */
[data-screen="editor"] .ffem-upload {
    border-color: rgba(255,255,255,.18);
}

[data-screen="editor"] .ffem-upload-grow .s {
    color: var(--txt-faint);
}

[data-screen="editor"] .ffem-btn-file {
    background: var(--inset);
    border-color: rgba(255,255,255,.16);
    color: var(--txt-2);
}

/* promotion */
[data-screen="editor"] .ffem-promo-selected {
    background: #0f1a14;
    border-color: #244634;
}

    [data-screen="editor"] .ffem-promo-selected .meta {
        color: #7e9d88;
    }

[data-screen="editor"] .ffem-promo-row {
    background: var(--inset);
    border-color: rgba(255,255,255,.14);
    color: #fff;
}

    [data-screen="editor"] .ffem-promo-row.is-blocked {
        background: rgba(255,255,255,.03);
        border-color: rgba(255,255,255,.1);
        color: var(--txt-faint);
    }

[data-screen="editor"] .ffem-newpromo {
    background: var(--panel);
    border-color: rgba(255,255,255,.08);
}

[data-screen="editor"] .ffem-btn-dashed {
    color: var(--gold);
    border-color: rgba(255,196,0,.5);
}

/* bout builder */
[data-screen="editor"] .ffem-bbout {
    background: var(--panel);
    border-color: rgba(255,255,255,.1);
}

[data-screen="editor"] .ffem-bbout-head {
    background: #161b21;
    border-bottom-color: rgba(255,255,255,.08);
}

[data-screen="editor"] .ffem-bbout-title {
    color: #fff;
}

[data-screen="editor"] .ffem-btn-remove {
    color: var(--txt-muted);
}

[data-screen="editor"] .ffem-check {
    color: var(--txt-2);
}

[data-screen="editor"] .ffem-main-note {
    color: var(--txt-muted);
}

[data-screen="editor"] .ffem-seg2 {
    background: var(--inset);
    border: 1px solid #808080ad
}

[data-screen="editor"] .ffem-fighter-col {
    background: var(--inset);
    border-color: rgba(255,255,255,.1);
}

[data-screen="editor"] .ffem-openbout-copy {
    color: var(--light-gray);
}

[data-screen="editor"] .ffem-fighter-col-h {
    color: #fff;
}

[data-screen="editor"] .ffem-pick-confirm {
    background: #0f1a14;
    border-color: #244634;
}

    [data-screen="editor"] .ffem-pick-confirm .sub {
        color: #7e9d88;
    }

[data-screen="editor"] .ffem-fresult {
    background: var(--inset);
    border-color: rgba(255,255,255,.1);
    color: #fff;
}

    [data-screen="editor"] .ffem-fresult .sub {
        color: var(--txt-muted);
    }

[data-screen="editor"] .ffem-open-mode {
    color: var(--txt-2);
}

[data-screen="editor"] .ffem-gdrop {
    background: var(--panel);
    border-color: rgba(255,255,255,.1);
}

[data-screen="editor"] .ffem-gym-note {
    background: rgba(255,255,255,.04);
    color: var(--txt-muted);
}

/* contact + audit */
[data-screen="editor"] .ffem-contact-default {
    background: var(--panel);
    border-color: rgba(255,255,255,.08);
    color: var(--txt-2);
}

    [data-screen="editor"] .ffem-contact-default .name {
        color: #fff;
    }

[data-screen="editor"] .ffem-audit {
    color: var(--txt-faint);
}

/* footer save bar — dark, and on mobile a full-bleed sticky bar */
[data-screen="editor"] .ffem-btn-cancel {
    border-color: rgba(255,255,255,.18);
    color: var(--txt-2);
}

@media (max-width: 768px) {
    [data-screen="editor"] .ffem-upload {
        flex-direction: column;
        text-align: center;
    }

    [data-screen="editor"] .ffem-upload-grow {
        min-width: 0;
    }
    /* Fixed (not sticky) so it floats at the viewport bottom even though the
     layout's .main-content-black-bg wrapper is overflow:hidden, which breaks
     position:sticky. The editor sheet already reserves 110px bottom padding. */
    [data-screen="editor"] .ffem-footer-actions {
        position: fixed;
        left: 0;
        right: 0;
        bottom: 0;
        z-index: 40;
        margin: 0;
        padding: 12px 16px;
        background: var(--header);
        border-top: 1px solid rgba(255,255,255,.08);
        box-shadow: 0 -6px 20px rgba(0,0,0,.4);
        flex-wrap: nowrap;
    }

        [data-screen="editor"] .ffem-footer-actions .ffem-btn-cancel {
            flex: 1;
            text-align: center;
            font-size: 13px;
            padding: 10px
        }

        [data-screen="editor"] .ffem-footer-actions .ffem-btn-save {
            flex: 2;
            font-size: 13px;
            padding: 10px
        }
}
