/* Combined and CSS - Generated by build.rs */

/* === style.css === */
/* latin-ext */
@font-face {
    font-family: "Outfit";
    font-style: normal;
    font-weight: 300;
    font-display: swap;
    src: url(/static/fonts/google_font_latin_ext.woff2) format("woff2");
    unicode-range:
        U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304,
        U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020,
        U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* latin */
@font-face {
    font-family: "Outfit";
    font-style: normal;
    font-weight: 300;
    font-display: swap;
    src: url(/static/fonts/google_font.woff2) format("woff2");
    unicode-range:
        U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC,
        U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193,
        U+2212, U+2215, U+FEFF, U+FFFD;
}

/* latin-ext */
@font-face {
    font-family: "Outfit";
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url(/static/fonts/google_font_latin_ext.woff2) format("woff2");
    unicode-range:
        U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304,
        U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020,
        U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* latin */
@font-face {
    font-family: "Outfit";
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url(/static/fonts/google_font.woff2) format("woff2");
    unicode-range:
        U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC,
        U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193,
        U+2212, U+2215, U+FEFF, U+FFFD;
}

/* latin-ext */
@font-face {
    font-family: "Outfit";
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: url(/static/fonts/google_font_latin_ext.woff2) format("woff2");
    unicode-range:
        U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304,
        U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020,
        U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* latin */
@font-face {
    font-family: "Outfit";
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: url(/static/fonts/google_font.woff2) format("woff2");
    unicode-range:
        U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC,
        U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193,
        U+2212, U+2215, U+FEFF, U+FFFD;
}

/* latin-ext */
@font-face {
    font-family: "Outfit";
    font-style: normal;
    font-weight: 600;
    font-display: swap;
    src: url(/static/fonts/google_font_latin_ext.woff2) format("woff2");
    unicode-range:
        U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304,
        U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020,
        U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* latin */
@font-face {
    font-family: "Outfit";
    font-style: normal;
    font-weight: 600;
    font-display: swap;
    src: url(/static/fonts/google_font.woff2) format("woff2");
    unicode-range:
        U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC,
        U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193,
        U+2212, U+2215, U+FEFF, U+FFFD;
}

/* latin-ext */
@font-face {
    font-family: "Outfit";
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url(/static/fonts/google_font_latin_ext.woff2) format("woff2");
    unicode-range:
        U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304,
        U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020,
        U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* latin */
@font-face {
    font-family: "Outfit";
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url(/static/fonts/google_font.woff2) format("woff2");
    unicode-range:
        U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC,
        U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193,
        U+2212, U+2215, U+FEFF, U+FFFD;
}

/* cyrillic */
@font-face {
    font-family: "Outfit";
    font-style: normal;
    font-weight: 300;
    font-display: swap;
    src: url(/static/fonts/google_font_cyrillic.woff2) format("woff2");
    unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

/* cyrillic */
@font-face {
    font-family: "Outfit";
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url(/static/fonts/google_font_cyrillic.woff2) format("woff2");
    unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

/* cyrillic */
@font-face {
    font-family: "Outfit";
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: url(/static/fonts/google_font_cyrillic.woff2) format("woff2");
    unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

/* cyrillic */
@font-face {
    font-family: "Outfit";
    font-style: normal;
    font-weight: 600;
    font-display: swap;
    src: url(/static/fonts/google_font_cyrillic.woff2) format("woff2");
    unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

/* cyrillic */
@font-face {
    font-family: "Outfit";
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url(/static/fonts/google_font_cyrillic.woff2) format("woff2");
    unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

/* ============================================
   OPEN FOOTBALL - FM2017 STYLE
   ============================================ */

/* Always reserve the vertical scrollbar gutter so toggling content height
   (e.g. expanding the player history accordion) can't make the scrollbar
   appear/disappear and shift the whole layout sideways. */
html {
    scrollbar-gutter: stable;
}

body {
    background-color: #1a2228;
    color: #d0d6dc;
    font-family: "Outfit", "Helvetica Neue", Helvetica, Arial, sans-serif;
    margin: 0;
}

a:link,
a:visited,
a:hover,
a:active {
    text-decoration: none !important;
}

/* ============================================
   SIDEBAR
   ============================================ */

.fm-sidebar {
    background: #151c22;
    padding: 0 1em 0 0 !important;
    position: sticky;
    top: 0;
    height: 100vh;
    display: flex;
    flex-direction: column;
    border-right: 1px solid #1f2a32;
    /* Width follows the longest menu label, with no upper bound. The menu
       differs per page and per locale, so any fixed fraction clips labels
       on one screen and wastes a strip of another — and any px cap turns
       a long label into a wrapped line. Labels are "{club}  |  {type}"
       and "{country} {league}", which in Russian run past 40 characters.
       min-width is a floor for short menus, not a limit: it can only pad
       a rail out, never squeeze a label. */
    flex: 0 0 auto;
    width: max-content;
    min-width: 200px;
}

.fm-sidebar-scroll {
    padding: 8px 0;
    flex: 1 1 auto;
    overflow-y: auto;
    min-height: 0;
    scrollbar-width: none;
}

.fm-sidebar-scroll::-webkit-scrollbar {
    display: none;
}

.fm-nav-section-bottom {
    flex-shrink: 0;
    border-bottom: none;
    border-top: 1px solid #1f2a32;
}

.fm-nav-divider {
    border-top: 1px solid #1f2a32;
    margin: 4px 0;
}

.fm-sidebar-lang {
    position: relative;
}

.fm-sidebar-lang-toggle {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 16px;
    color: #6e7b85;
    font-size: 14px;
    cursor: pointer;
    transition:
        color 0.12s,
        background 0.12s;
}

.fm-sidebar-lang-toggle:hover {
    color: #c8d0d8;
    background: rgba(255, 255, 255, 0.03);
}

/* Absolutely positioned, so it doesn't feed the sidebar's content width —
   it sizes to its own language names and matches the rail at minimum. */
.fm-sidebar-lang-menu {
    display: none;
    position: absolute;
    bottom: 100%;
    left: 0;
    right: auto;
    width: max-content;
    min-width: 100%;
    background: #1c2830;
    border: 1px solid #263340;
    border-radius: 4px;
    box-shadow: 0 -4px 12px rgba(0, 0, 0, 0.3);
    z-index: 100;
}

.fm-sidebar-lang.fm-lang-open .fm-sidebar-lang-menu {
    display: block;
}

.fm-sidebar-lang-menu .fm-lang-option {
    text-decoration: none;
}

.fm-nav-section {
    list-style: none;
    padding: 6px 0;
    margin: 0;
    border-bottom: 1px solid #1f2a32;
}

.fm-nav-section li a {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 16px;
    color: #6e7b85;
    font-size: 15px;
    font-weight: 400;
    transition:
        color 0.12s,
        background 0.12s;
    word-spacing: 0.15em;
    overflow: hidden;
}

/* Nav labels are league/competition names — a long one wraps onto a
   second line rather than being clipped, so the sidebar always shows
   the name in full. The language row is a <div>, not an <a>, so it needs
   naming separately or it stays the one label in the rail that can't wrap. */
.fm-nav-section li a span:not(.flag),
.fm-sidebar-lang-toggle span:not(.flag) {
    white-space: normal;
    overflow-wrap: anywhere;
    line-height: 1.25;
    min-width: 0;
}

/* Flags are fixed 20px artwork, not text. Both rows are flex containers,
   so without this a long label squeezes the flag instead of wrapping. */
.fm-nav-section li a .flag,
.fm-sidebar-lang-toggle .flag {
    flex-shrink: 0;
}

.fm-nav-section li a:hover {
    color: #c8d0d8;
    background: rgba(255, 255, 255, 0.03);
}

.fm-nav-section li.active a {
    color: #fff;
    background: rgba(255, 255, 255, 0.06);
    border-left: 2px solid #4a9eff;
    padding-left: 14px;
}

.fm-nav-section li a i {
    width: 18px;
    flex-shrink: 0;
    text-align: center;
    font-size: 13px;
}

/* Environment-specific sidebar items — toggled by the env-local / env-shared
   class set on <html> from the hostname (mirrors the isLocal check in layout.html).
   On the hosted build the "Download local version" call-to-action shows. */
.fm-nav-shared-only {
    display: none;
}

.env-shared .fm-nav-shared-only {
    display: block;
}

.fm-nav-section li a.fm-nav-download {
    margin: 4px 2px;
    padding: 8px 14px;
    color: #14b8a6;
    font-size: 15px;
    font-weight: 600;
    background: none;
    border: none;
}

.fm-nav-section li a.fm-nav-download i,
.fm-nav-section li a.fm-nav-download span {
    color: #027b71;
}

/* Collapsible league list — show first 2, hide the rest behind a toggle */
.fm-nav-collapsible .fm-nav-overflow {
    display: none;
}

.fm-nav-collapsible.fm-nav-expanded .fm-nav-overflow {
    display: block;
}

.fm-nav-collapsible .fm-nav-toggle {
    list-style: none;
}

.fm-nav-collapsible .fm-nav-toggle button {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    padding: 6px 16px;
    border: 0;
    background: transparent;
    color: #4a5663;
    cursor: pointer;
    transition:
        color 0.12s,
        background 0.12s;
}

.fm-nav-collapsible .fm-nav-toggle button:hover {
    color: #c8d0d8;
    background: rgba(255, 255, 255, 0.03);
}

.fm-nav-toggle-spacer {
    width: 18px;
    flex-shrink: 0;
}

.fm-nav-toggle-label {
    display: inline-flex;
    align-items: center;
    font-size: 12px;
    line-height: 1;
}

.fm-nav-toggle-icon {
    font-size: 12px;
}

.fm-nav-collapsible .fm-nav-toggle-icon-less,
.fm-nav-collapsible.fm-nav-expanded .fm-nav-toggle-icon-more {
    display: none;
}

.fm-nav-collapsible.fm-nav-expanded .fm-nav-toggle-icon-less {
    display: inline-block;
}

/* ============================================
   HEADER
   ============================================ */

.row > .col,
.row > [class*="col-"] {
    min-width: 0;
}

.fm-header {
    display: flex;
    justify-content: space-between;
    align-items: stretch;
    padding: 0 0 0 24px;
    background: #fff;
    border-bottom: 1px solid #e0e3e6;
    min-height: 68px;
    min-width: 0;
}

.fm-header-title {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-width: 0;
    flex: 1;
    overflow: hidden;
}

.fm-header-title h1 {
    margin: 0;
    font-size: 22px;
    font-weight: 700;
    color: #1e272d;
    letter-spacing: -0.2px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fm-header-sub {
    font-size: 13px;
    color: #6b7580;
    font-weight: 400;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fm-header-colored {
    border-bottom-color: var(--header-border, rgba(0, 0, 0, 0.2));
}

.fm-header-colored .fm-header-title h1 {
    color: var(--tab-fg-active, #fff);
    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
}

.fm-header-colored .fm-header-sub,
.fm-header-colored .fm-header-sub a {
    color: var(--tab-fg-active, #fff);
}

.fm-header-colored .fm-menu-toggle span,
.fm-header-colored .fm-menu-toggle span::before,
.fm-header-colored .fm-menu-toggle span::after {
    background: var(--tab-fg-active, #fff);
}

.fm-header-actions {
    display: flex;
    align-items: stretch;
    gap: 0;
    margin-left: auto;
    align-self: stretch;
    flex-shrink: 0;
}

.fm-lang-option {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 14px;
    color: #b0bac2;
    font-size: 13px;
    transition: background 0.12s;
}

.fm-lang-option:hover {
    background: rgba(255, 255, 255, 0.06);
    color: #fff;
}

.fm-process-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 130px;
    padding: 0 18px;
    margin-bottom: -1px;
    background: #232e35;
    color: #fff;
    font-weight: 700;
    font-size: 13px;
    text-transform: uppercase;
    white-space: nowrap;
    cursor: pointer;
    transition: background 0.15s;
}

.fm-process-label {
    letter-spacing: 1px;
    margin-right: -1px;
}

.fm-process-btn:hover {
    background: #2c3940;
}

.fm-header-colored .fm-process-btn {
    margin-bottom: 0;
    background: var(--tab-fg-active, #fff);
    color: var(--header-bg, #232e35);
}

.fm-header-colored .fm-process-btn:hover {
    background: var(--tab-fg-active, #fff);
}

.fm-date {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 0 20px;
}

.fm-date-main {
    font-size: 15px;
    font-weight: 700;
    color: var(--tab-fg-active, #1e272d);
}

.fm-date-sub {
    font-size: 12px;
    color: var(--tab-fg, #6b7580);
}

/* Spinner */

.spinner-wrapper {
    display: none;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
}

.fm-processing .fm-process-label {
    display: none;
}

.fm-processing .spinner-wrapper {
    display: flex;
}

.fm-processing {
    pointer-events: none;
}

.spinner {
    width: 22px;
    height: 22px;
    border-radius: 50%;
    border-top: 2px solid var(--header-bg, #4a9d5b);
    border-right: 2px solid transparent;
    animation: spinner 0.6s linear infinite;
    box-sizing: border-box;
}

@keyframes spinner {
    to {
        transform: rotate(360deg);
    }
}

/* ============================================
   FM TAB BAR
   ============================================ */

.fm-tabbar {
    background: var(--header-bg, #fff);
    border-bottom: 1px solid var(--header-border, #e0e3e6);
    display: flex;
    padding: 0;
    overflow-x: auto;
    max-width: 100%;
}

.fm-tab {
    display: inline-flex;
    align-items: center;
    padding: 10px 18px;
    font-size: 10px;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.6px;
    line-height: 1;
    color: var(--tab-fg, #8a939b);
    border-bottom: 2px solid transparent;
    cursor: pointer;
    white-space: nowrap;
    transition:
        color 0.15s,
        border-color 0.15s,
        background 0.15s;
}

.fm-tab:hover {
    color: var(--tab-fg-active, #1e272d);
    background: var(--tab-hover-bg, #f5f6f7);
}

.fm-tab.active {
    color: var(--tab-fg-active, #1e272d);
    border-bottom-color: var(--tab-active-border, #4a9d5b);
}

.fm-tab-badge {
    display: inline-block;
    position: relative;
    top: 0px;
    margin-left: 5px;
    padding: 3px 4px;
    min-width: 20px;
    font-size: 8px;
    font-weight: 600;
    line-height: 1;
    text-align: center;
    border-radius: 2px;
    background: var(--tab-fg-active, #4a9d5b);
    color: var(--header-bg, #fff);
    vertical-align: middle;
}

/* ============================================
   FM PAGE CONTAINER
   ============================================ */

.fm-page {
    padding: 16px 20px;
}

/* ============================================
   FM PANELS
   ============================================ */

.fm-panel {
    background: linear-gradient(180deg, #1c2830 0%, #192228 100%);
    border: 1px solid #263340;
    border-radius: 4px;
    overflow: hidden;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
}

.fm-panel-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 10px 14px;
    background: linear-gradient(180deg, #222e38 0%, #1e2a32 100%);
    border-bottom: 1px solid #263340;
}

.fm-panel-head h3 {
    margin: 0;
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1.2px;
    color: #546a78;
}

.fm-transfer-history-head {
    margin-top: 10px;
    border-radius: 4px 4px 0 0;
}

.fm-panel-action {
    font-size: 11px;
    font-weight: 600;
    color: #4a9d5b;
    cursor: pointer;
    letter-spacing: 0.3px;
}

/* When used on a real <button> (e.g. tactics page "Auto-pick"), strip
   the browser chrome so it reads identically to the plain span usage. */
button.fm-panel-action {
    background: none;
    border: none;
    padding: 0;
    font-family: inherit;
}

.fm-panel-action:hover {
    color: #5cb86c;
}

.fm-panel-count {
    font-size: 11px;
    font-weight: 600;
    color: #4e5a63;
}

.fm-season-select {
    appearance: none;
    -webkit-appearance: none;
    background: #1a2530
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='5'%3E%3Cpath d='M0 0l4 5 4-5z' fill='%23546a78'/%3E%3C/svg%3E")
        no-repeat right 8px center;
    border: 1px solid #263340;
    border-radius: 3px;
    color: #c8d6e0;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.5px;
    padding: 4px 22px 4px 8px;
    cursor: pointer;
    outline: none;
}

.fm-season-select:hover {
    border-color: #3a4f5e;
}

.fm-season-select:focus {
    border-color: #4a8a6a;
}

.fm-season-select option {
    background: #1a2530;
    color: #c8d6e0;
}

.fm-empty {
    padding: 32px 20px;
    text-align: center;
    color: #6b7580;
    font-size: 13px;
    font-style: italic;
}

/* Staff page */
.fm-staff-group {
    margin-top: 12px;
}

.fm-staff-table .st-name {
    width: 30%;
}

.fm-staff-table .st-role {
    width: 22%;
    color: #7a868e;
    font-size: 12px;
}

.fm-staff-table .st-nat {
    width: 48px;
}

.fm-staff-table .st-age {
    width: 60px;
    text-align: center;
}

.fm-staff-table .st-contract {
    width: 110px;
}

.fm-staff-table .st-wage {
    width: 120px;
}

.fm-staff-table .st-name a {
    font-weight: 500;
}

/* Staff Profile Page */

.fm-staff-profile {
    padding: 16px;
}

.fm-sp-header {
    display: flex;
    align-items: flex-start;
    gap: 20px;
}

.fm-sp-identity {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.fm-sp-info-row {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    color: #8a949c;
}

.fm-sp-info-row a {
    color: #4a9eff;
}

.fm-sp-detail {
    color: #b0b8c0;
}

.fm-ph-sep {
    width: 1px;
    height: 12px;
    background: #3a4650;
    display: inline-block;
}

.fm-staff-attrs {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 0;
    padding: 0;
}

.fm-staff-attrs .fm-skill-col {
    border-bottom: 1px solid #263340;
}

.fm-staff-attrs .fm-skill-col:nth-child(-n + 3) {
    border-bottom: 1px solid #263340;
}

.fm-staff-attrs .fm-skill-col:nth-child(4),
.fm-staff-attrs .fm-skill-col:nth-child(5) {
    border-bottom: none;
}

/* Player Transfer Tab */
.fm-pt-section {
    margin-top: 12px;
}

.fm-pt-status {
    padding: 14px 16px;
}

.fm-pt-clubs,
.fm-pt-clubs a {
    color: #fff;
    font-size: 15px;
}

.fm-pt-status-grid {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.fm-pt-info-row {
    display: flex;
    align-items: center;
    gap: 12px;
}

.fm-pt-label {
    color: #7a868e;
    font-size: 15px;
    min-width: 100px;
    flex-shrink: 0;
}

.fm-pt-value {
    color: #d0d6dc;
    font-size: 15px;
    font-weight: 500;
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.fm-pt-badge {
    display: inline-block;
    padding: 2px 8px;
    font-size: 10px;
    font-weight: 700;
    border-radius: 3px;
    letter-spacing: 0.3px;
    text-transform: uppercase;
}

.fm-pt-badge-none {
    background: #2a3640;
    color: #7a868e;
}

.fm-pt-badge-listed {
    background: #2a7a3f;
    color: #c8f0d0;
}

.fm-pt-badge-agreed {
    background: #1b6e3a;
    color: #fff;
}

.fm-pt-badge-request {
    background: #a71214;
    color: #fff;
}

.fm-pt-badge-interest {
    background: #1565a0;
    color: #d0e8f8;
}

.fm-pt-table .pt-club {
    width: 28%;
}

.fm-pt-table .pt-offer {
    width: 18%;
}

.fm-pt-table .pt-type {
    width: 14%;
}

.fm-pt-table .pt-phase {
    width: 18%;
    color: #7a868e;
    font-size: 12px;
}

.fm-pt-table .pt-nstatus {
    width: 12%;
}

.fm-pt-table .pt-lstatus {
    width: 16%;
}

.fm-pt-table .pt-price {
    width: 22%;
}

.fm-pt-table .pt-date {
    width: 14%;
    color: #7a868e;
    font-size: 12px;
}

.fm-pt-table .pt-club a {
    font-weight: 500;
}

/* Completed Transfers — card layout */
.fm-ct-list {
    display: flex;
    flex-direction: column;
}

.fm-ct-card {
    padding: 10px 16px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.03);
    transition: background 0.1s ease;
}

.fm-ct-card:nth-child(even) {
    background: rgba(0, 0, 0, 0.1);
}

.fm-ct-card:hover {
    background: rgba(255, 255, 255, 0.04);
}

.fm-ct-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
}

.fm-ct-clubs {
    display: flex;
    align-items: center;
    gap: 8px;
    flex: 1;
    min-width: 0;
}

.fm-ct-club {
    font-size: 13px;
    color: #b0bac2;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.fm-ct-club a {
    color: #d8dee4;
    font-weight: 500;
}

.fm-ct-club a:hover {
    color: #fff;
    text-decoration: underline !important;
}

.fm-ct-arrow {
    color: #3a4a54;
    font-size: 14px;
    flex-shrink: 0;
}

.fm-ct-meta {
    display: flex;
    align-items: center;
    gap: 14px;
    flex-shrink: 0;
}

.fm-ct-fee {
    font-size: 13px;
    font-weight: 600;
    color: #d0d6dc;
    font-variant-numeric: tabular-nums;
}

.fm-ct-type {
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.4px;
    color: #1e282e;
    background: #4e5a63;
    padding: 2px 7px;
    border-radius: 3px;
}

.fm-ct-date {
    font-size: 12px;
    color: #5a666e;
    font-variant-numeric: tabular-nums;
    min-width: 72px;
    text-align: right;
}

.fm-ct-reason {
    margin-top: 5px;
    font-size: 12px;
    color: #6a8a5a;
    line-height: 1.4;
    padding-left: 1px;
}

/* Scout verdict sits under the club's motive — same column, quieter. */
.fm-ct-scout {
    margin-top: 2px;
    font-size: 11px;
    color: #8a8a7a;
    line-height: 1.4;
    padding-left: 1px;
}

.fm-transfers-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    margin-top: 12px;
}

.fm-transfers-row .fm-panel {
    margin-bottom: 0;
}

/* ============================================
   FM BADGES
   ============================================ */

.fm-badge {
    display: inline-block;
    padding: 2px 8px;
    font-size: 11px;
    font-weight: 700;
    border-radius: 3px;
    letter-spacing: 0.3px;
}

.fm-badge-inj {
    background: #a71214;
    color: #fff;
}

.fm-badge-wnt {
    background: #2a7a3f;
    color: #c8f0d0;
}

.fm-badge-ret {
    background: #808080;
    color: #fff;
}

.fm-badge-lst {
    background: #2a7a3f;
    color: #c8f0d0;
}

.fm-badge-unh {
    background: #2a7a3f;
    color: #c8f0d0;
}

.fm-badge-loan-in {
    background: #b2ebf2;
    color: #00606e;
}

.fm-badge-loan-out {
    background: #00838f;
    color: #e0f7fa;
}

.fm-badge-yth {
    background: #2e7d32;
    color: #fff;
}

.fm-badge-loa {
    background: #2a7a3f;
    color: #c8f0d0;
}

.sq-dec {
    text-align: center;
    width: 28px;
}

.sq-cap-dot {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 13px;
    height: 13px;
    border-radius: 50%;
    background: #000;
    font-size: 8.5px;
    font-weight: 700;
    font-style: normal;
    line-height: 1;
    color: #fff;
    text-decoration: none;
    vertical-align: middle;
}

.sq-cap-dot::after {
    content: "C";
}

.sq-vice-dot {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 13px;
    height: 13px;
    border-radius: 50%;
    background: #555;
    font-size: 8.5px;
    font-weight: 700;
    font-style: normal;
    line-height: 1;
    color: #fff;
    text-decoration: none;
    vertical-align: middle;
}

.sq-vice-dot::after {
    content: "V";
}

/* Morale direction arrows */
.fm-morale {
    display: inline-block;
    font-size: 11px;
    line-height: 1;
}

.fm-morale-good {
    color: #4caf50;
}

.fm-morale-normal {
    color: #9e9e9e;
}

.fm-morale-poor {
    color: #e53935;
}

/* Badge Deck — stacked card interaction */
.fm-badge-deck {
    position: relative;
    display: inline-block;
    vertical-align: middle;
}

.fm-badge-deck[data-count] {
    cursor: pointer;
}

.fm-badge-deck[data-count] .fm-badge {
    position: absolute;
    top: 0;
    left: 0;
    white-space: nowrap;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.35);
    transition:
        transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1),
        box-shadow 0.25s ease;
}

.fm-badge-deck[data-count] .fm-badge:first-child {
    position: relative;
    left: auto;
    top: auto;
}

.fm-badge-deck[data-count] .fm-badge:nth-child(2) {
    transition-delay: 30ms;
}

.fm-badge-deck[data-count] .fm-badge:nth-child(3) {
    transition-delay: 60ms;
}

.fm-badge-deck.open {
    z-index: 100;
}

.fm-badge-deck.open .fm-badge {
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.5);
}

/* ============================================
   FM STARS
   ============================================ */

.fm-stars {
    display: inline-flex;
    gap: 2px;
}

.fm-stars .star {
    display: inline-block;
    width: 14px;
    height: 14px;
    font-size: 13px;
    line-height: 14px;
    text-align: center;
    color: #2a3238;
}

.fm-stars .star::before {
    content: "\2605";
}

.fm-stars .star.on {
    color: #e8b628;
    text-shadow: 0 0 6px rgba(232, 182, 40, 0.35);
}

/* Half star: gold left half, empty-shade right half, painted onto the
   same ★ glyph via background-clip so it aligns with .on/.off stars. */
.fm-stars .star.half {
    background: linear-gradient(90deg, #e8b628 50%, #2a3238 50%);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}

.fm-stars-lg .star {
    width: 20px;
    height: 20px;
    font-size: 18px;
    line-height: 20px;
}

.fm-stars-lg .star.on {
    color: #ecc030;
    filter: drop-shadow(0 1px 3px rgba(236, 192, 48, 0.4));
}

.fm-stars-lg .star.half {
    background: linear-gradient(90deg, #ecc030 50%, #2a3238 50%);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}

/* ============================================
   FM CONDITION BAR
   ============================================ */

.fm-cond {
    display: flex;
    align-items: center;
    gap: 8px;
}

.fm-cond-bar {
    flex: 1;
    height: 6px;
    background: #1a2228;
    border-radius: 3px;
    overflow: hidden;
    border: 1px solid #263340;
}

.fm-cond-fill {
    height: 100%;
    background: linear-gradient(90deg, #3a8a48, #52b84a);
    border-radius: 2px;
    box-shadow: 0 0 4px rgba(74, 157, 91, 0.3);
}

.fm-cond-val {
    font-size: 12px;
    color: #7a8c98;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
}

/* ============================================
   ACADEMY SQUAD TABLE
   ============================================ */

.fm-academy-squad .aq-name {
    width: 22%;
    font-size: 12px;
    color: #98a4ae;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 180px;
}

.fm-academy-squad .aq-pos {
    width: 12%;
    font-size: 11px;
    color: #7a868e;
    text-align: center;
}

.fm-academy-squad .aq-nat {
    width: 5%;
    text-align: center;
}

.fm-academy-squad .aq-age {
    width: 7%;
    text-align: center;
    font-size: 14px;
    font-weight: 600;
    color: #d0d6dc;
    font-variant-numeric: tabular-nums;
}

.fm-academy-squad .aq-ca,
.fm-academy-squad .aq-pa {
    width: 16%;
}

.fm-academy-squad .aq-cond {
    width: 22%;
}

.fm-academy-squad .aq-cond .fm-cond-bar {
    min-width: 80px;
}

.fm-academy-squad .aq-cond .fm-cond-val {
    font-size: 13px;
    font-weight: 700;
}

.fm-academy-squad thead th.aq-ca,
.fm-academy-squad thead th.aq-pa {
    text-align: center;
}

.fm-academy-squad td.aq-ca,
.fm-academy-squad td.aq-pa {
    text-align: center;
}

/* ============================================
   FLAGS
   ============================================ */

.flag {
    width: 20px;
    height: 15px;
    display: inline-block;
    overflow: hidden;
    background-size: contain;
    background-repeat: no-repeat;
}

/* ============================================
   LEAGUE PAGE - STANDINGS
   ============================================ */

.fm-standings {
    width: 100%;
    border-collapse: collapse;
    font-variant-numeric: tabular-nums;
}

.fm-standings thead th {
    padding: 9px 6px;
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: #4e5a63;
    text-align: center;
    border-bottom: 1px solid #2a353d;
    background: #1e282e;
}

.fm-standings thead .st-club {
    text-align: left;
    padding-left: 12px;
}

.fm-standings thead .st-pos {
    width: 36px;
}

.fm-standings thead .st-pts {
    width: 46px;
}

.fm-standings tbody tr {
    border-left: 3px solid transparent;
    transition: background 0.1s ease;
}

.fm-standings tbody tr:nth-child(even) {
    background: rgba(0, 0, 0, 0.12);
}

.fm-standings tbody tr:hover {
    background: rgba(255, 255, 255, 0.04);
}

.fm-standings tbody tr.zone-ucl {
    border-left-color: #2ecc71;
}

.fm-standings tbody tr.zone-uel {
    border-left-color: #3498db;
}

.fm-standings tbody tr.zone-rel {
    border-left-color: #e74c3c;
}

.fm-standings tbody td {
    padding: 7px 6px;
    font-size: 13px;
    text-align: center;
    color: #b0bac2;
    border-bottom: 1px solid rgba(255, 255, 255, 0.025);
}

.fm-standings .st-pos {
    font-size: 11px;
    color: #4e5a63;
    font-weight: 600;
    width: 36px;
}

.fm-standings .st-club {
    text-align: left;
    padding-left: 12px;
}

.fm-standings .st-club a {
    color: #d8dee4;
    font-weight: 400;
    font-size: 15px;
}

.fm-standings .st-club a:hover {
    color: #fff;
    text-decoration: underline !important;
}

.fm-standings .st-gd {
    color: #7a868e;
}

.fm-standings .st-pts {
    font-weight: 700;
    color: #fff;
    width: 46px;
    font-size: 14px;
}

/* Zone Legend */

.fm-legend {
    display: flex;
    gap: 16px;
    padding: 9px 14px;
    border-top: 1px solid #2a353d;
    background: #232e35;
}

.fm-legend span {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 10px;
    color: #4e5a63;
    text-transform: uppercase;
    letter-spacing: 0.4px;
    font-weight: 600;
}

.legend-dot {
    display: inline-block;
    width: 7px;
    height: 7px;
    border-radius: 50%;
}

.legend-dot.ucl {
    background: #2ecc71;
}

.legend-dot.uel {
    background: #3498db;
}

.legend-dot.rel {
    background: #e74c3c;
}

/* ============================================
   LEAGUE PAGE - FIXTURES
   ============================================ */

.fm-fixtures {
    padding: 0;
}

.fm-matchday-hd {
    padding: 7px 14px;
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.7px;
    color: #4e5a63;
    background: rgba(0, 0, 0, 0.22);
    border-bottom: 1px solid rgba(255, 255, 255, 0.025);
}

.fm-fixture {
    display: flex;
    align-items: flex-start;
    padding: 9px 14px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.025);
    transition: background 0.1s ease;
}

.fm-fixture:last-child {
    border-bottom: none;
}

.fm-fixture:hover {
    background: rgba(255, 255, 255, 0.03);
}

.fx-home {
    flex: 1;
    text-align: right;
    padding-right: 10px;
    min-width: 0;
}

.fx-away {
    flex: 1;
    text-align: left;
    padding-left: 10px;
    min-width: 0;
}

.fx-home a,
.fx-away a {
    color: #d8dee4;
    font-size: 16px;
    font-weight: 400;
}

.fx-home a:hover,
.fx-away a:hover {
    color: #fff;
    text-decoration: underline !important;
}

.fx-score {
    flex-shrink: 0;
    min-width: 64px;
    text-align: center;
    font-size: 13px;
    font-weight: 400;
    color: #fff;
    padding: 5px 4px;
    font-variant-numeric: tabular-nums;
    line-height: 1.3;
}

.fx-score:hover {
    color: #4a9d5b;
}

.fx-scorers {
    display: flex;
    flex-direction: column;
    margin-top: 2px;
    overflow: hidden;
}

.fx-scorer {
    display: block;
    font-size: 10px;
    color: #465058;
    line-height: 1.5;
    font-weight: 400;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.fx-scorer:nth-child(n + 4) {
    display: none;
}

/* ============================================
   CUP PAGE - BRACKET
   ============================================ */

/* ---- Hero ---- */
.fm-cup-hero {
    position: relative;
    display: flex;
    align-items: center;
    gap: 22px;
    padding: 22px 24px;
    overflow: hidden;
    background:
        radial-gradient(
            150% 130% at 100% 0%,
            rgba(74, 157, 91, 0.06),
            transparent 55%
        ),
        radial-gradient(
            120% 140% at 0% 0%,
            rgba(232, 193, 74, 0.13),
            transparent 46%
        );
}

.fm-trophy-badge {
    position: relative;
    flex: 0 0 auto;
    width: 62px;
    height: 62px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: radial-gradient(circle at 32% 26%, #3a3420, #1c2128);
    box-shadow:
        inset 0 0 0 1px rgba(232, 193, 74, 0.45),
        inset 0 -6px 14px rgba(0, 0, 0, 0.5),
        0 0 26px rgba(232, 193, 74, 0.14);
}

.fm-trophy-badge i {
    font-size: 25px;
    color: #f0cf63;
    filter: drop-shadow(0 1px 4px rgba(232, 193, 74, 0.4));
}

.fm-trophy-badge.live {
    background: radial-gradient(circle at 32% 26%, #28323b, #1a2128);
    box-shadow:
        inset 0 0 0 1px rgba(255, 255, 255, 0.1),
        inset 0 -6px 14px rgba(0, 0, 0, 0.5);
}

.fm-trophy-badge.live i {
    color: #9fb0bd;
    filter: none;
}

.fm-cup-hero-main {
    display: flex;
    flex-direction: column;
    gap: 5px;
    min-width: 0;
    flex: 1 1 auto;
}

.fm-cup-hero-label {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: #9c8838;
}

.fm-cup-hero-label.live {
    color: #5a7a86;
}

.fm-cup-hero-name {
    font-size: 23px;
    font-weight: 600;
    line-height: 1.1;
    color: #fff;
    overflow: hidden;
    text-overflow: ellipsis;
}

.fm-cup-hero-name a {
    color: #fff;
}

.fm-cup-hero-name a:hover {
    color: #ffe9a8;
}

.fm-cup-hero-sub {
    font-size: 12px;
    color: #7c8893;
}

.fm-cup-stats {
    margin-left: auto;
    display: flex;
    gap: 10px;
    flex-shrink: 0;
}

.fm-cup-stat {
    min-width: 80px;
    padding: 11px 14px;
    text-align: center;
    background: rgba(0, 0, 0, 0.24);
    border: 1px solid #263340;
    border-radius: 6px;
}

.fm-cup-stat b {
    display: block;
    font-size: 21px;
    font-weight: 600;
    color: #e6edf2;
    line-height: 1;
    font-variant-numeric: tabular-nums;
}

.fm-cup-stat span {
    display: block;
    margin-top: 5px;
    font-size: 9px;
    text-transform: uppercase;
    letter-spacing: 0.7px;
    color: #5e6e78;
}

/* ---- Bracket ----
   Rounds are fixed-width columns sitting side by side; the scroller takes
   over horizontally rather than letting columns stretch into long rows.
   Each later round spreads its ties with space-around, so the column
   heights match and the field visibly narrows toward the final — the
   pyramid. Faint nubs on each tie bridge the gap to the neighbouring
   round, reading as a knockout bracket without claiming exact pairings
   (which byes would otherwise break). */
.fm-bracket-scroll {
    overflow-x: auto;
    padding: 16px 6px 20px;
    -webkit-overflow-scrolling: touch;
}

.fm-bracket-scroll::-webkit-scrollbar {
    height: 8px;
}

.fm-bracket-scroll::-webkit-scrollbar-thumb {
    background: #2a3744;
    border-radius: 4px;
}

.fm-bracket {
    display: flex;
    align-items: stretch;
    min-width: min-content;
}

.fm-round {
    flex: 0 0 230px;
    width: 230px;
    display: flex;
    flex-direction: column;
    padding: 0 16px;
    position: relative;
}

.fm-round-hd {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    padding: 6px 0 11px;
    margin-bottom: 4px;
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.9px;
    color: #5d6a74;
    border-bottom: 1px solid rgba(255, 255, 255, 0.055);
}

.fm-round.is-final .fm-round-hd {
    color: #4a9d5b;
}

.fm-round-cnt {
    font-size: 9px;
    font-weight: 600;
    color: #566571;
    background: rgba(255, 255, 255, 0.05);
    border-radius: 10px;
    padding: 2px 7px;
    letter-spacing: 0.3px;
}

.fm-round-body {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: space-around;
    gap: 13px;
    padding: 10px 0;
}

.fm-tie {
    position: relative;
    background: linear-gradient(180deg, #1a242c, #161e25);
    border: 1px solid #283643;
    border-radius: 7px;
    overflow: hidden;
    transition:
        border-color 0.12s ease,
        box-shadow 0.12s ease;
}

.fm-tie:hover {
    border-color: #3b4f61;
    box-shadow: 0 5px 16px rgba(0, 0, 0, 0.32);
}

.fm-tie-row {
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: stretch;
    min-height: 35px;
}

.fm-tie-row + .fm-tie-row {
    border-top: 1px solid rgba(255, 255, 255, 0.05);
}

.fm-tie-team {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
    padding: 7px 4px 7px 11px;
    color: #aab4bd;
    font-size: 13px;
}

.fm-tie-team:hover {
    color: #fff;
}

.fm-tie-name {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    min-width: 0;
}

.fm-tie-crown {
    margin-left: auto;
    flex-shrink: 0;
    color: #f0cf63;
    font-size: 11px;
}

.fm-tie-score {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 3px;
    min-width: 36px;
    padding: 0 9px;
    font-size: 13px;
    font-weight: 600;
    color: #828f99;
    font-variant-numeric: tabular-nums;
    background: rgba(0, 0, 0, 0.2);
    border-left: 1px solid rgba(255, 255, 255, 0.04);
}

.fm-tie-score:hover {
    color: #5cb86c;
}

.fm-tie-row.winner {
    background: linear-gradient(
        90deg,
        rgba(74, 157, 91, 0.16),
        rgba(74, 157, 91, 0.03)
    );
    box-shadow: inset 3px 0 0 #4a9d5b;
}

.fm-tie-row.winner .fm-tie-team {
    color: #fff;
    font-weight: 600;
    padding-left: 8px;
}

.fm-tie-row.winner .fm-tie-score {
    color: #eaf0f4;
}

.fm-pen {
    font-size: 9px;
    font-weight: 700;
    color: #5cb86c;
}

.fm-tie.unplayed .fm-tie-score {
    color: #46535d;
}

.fm-round.is-final .fm-tie {
    border-color: rgba(74, 157, 91, 0.4);
    box-shadow: 0 0 20px rgba(74, 157, 91, 0.07);
}

.fm-round.is-final .fm-tie:hover {
    border-color: rgba(74, 157, 91, 0.6);
}

.fm-bye {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 9px 11px;
    border: 1px solid #283643;
    border-radius: 7px;
    background: rgba(255, 255, 255, 0.014);
    color: #6b7580;
    font-size: 12.5px;
}

.fm-bye:hover {
    color: #9aa4ad;
}

.fm-bye .name {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fm-bye .tag {
    flex-shrink: 0;
    font-size: 8px;
    font-weight: 700;
    letter-spacing: 0.6px;
    text-transform: uppercase;
    color: #566270;
    background: rgba(255, 255, 255, 0.04);
    padding: 3px 6px;
    border-radius: 4px;
}

/* ---- Playoffs ----
   Bracket extensions for the /playoffs pages: seed badges and host marks
   on the tie rows, per-game chips under a best-of-N series, the neutral-
   venue tag on the final, and a centered single-card section for the
   cross-conference final. Everything else reuses the cup bracket. */
.fm-bracket-centered {
    justify-content: center;
}

.fm-seed {
    flex-shrink: 0;
    min-width: 16px;
    padding: 1px 3px;
    text-align: center;
    font-size: 9px;
    font-weight: 700;
    color: #7c8893;
    background: rgba(255, 255, 255, 0.06);
    border-radius: 4px;
    font-variant-numeric: tabular-nums;
}

.fm-tie-row.winner .fm-seed {
    color: #cfe4d4;
    background: rgba(74, 157, 91, 0.22);
}

.fm-host-mark {
    flex-shrink: 0;
    font-size: 8px;
    color: #46535d;
}

.fm-shield-line {
    display: flex;
    align-items: center;
    gap: 6px;
}

.fm-shield-line i {
    color: #f0cf63;
    font-size: 11px;
}

.fm-shield-line a {
    color: #aab4bd;
}

.fm-shield-line a:hover {
    color: #fff;
}

.fm-series-games {
    display: flex;
    align-items: center;
    gap: 5px;
    padding: 6px 9px;
    border-top: 1px solid rgba(255, 255, 255, 0.05);
    background: rgba(0, 0, 0, 0.18);
}

.fm-game-chip {
    display: flex;
    align-items: center;
    gap: 4px;
    padding: 2px 7px;
    font-size: 10px;
    font-weight: 600;
    color: #828f99;
    font-variant-numeric: tabular-nums;
    background: rgba(255, 255, 255, 0.04);
    border-radius: 4px;
    white-space: nowrap;
}

.fm-game-chip:hover {
    color: #fff;
    background: rgba(255, 255, 255, 0.08);
}

.fm-game-chip .g {
    font-size: 8px;
    font-weight: 700;
    letter-spacing: 0.5px;
    color: #566270;
}

.fm-game-chip.unplayed {
    color: #46535d;
}

.fm-neutral-tag {
    padding: 4px 11px;
    border-top: 1px solid rgba(255, 255, 255, 0.05);
    font-size: 8px;
    font-weight: 700;
    letter-spacing: 0.6px;
    text-transform: uppercase;
    color: #566270;
    background: rgba(255, 255, 255, 0.02);
    text-align: center;
}

/* ---- Responsive ---- */
@media (max-width: 640px) {
    .fm-cup-hero {
        gap: 14px;
        padding: 16px;
        flex-wrap: wrap;
    }

    .fm-trophy-badge {
        width: 50px;
        height: 50px;
    }

    .fm-trophy-badge i {
        font-size: 20px;
    }

    .fm-cup-hero-name {
        font-size: 19px;
    }

    .fm-cup-stats {
        margin-left: 0;
        flex-basis: 100%;
    }

    .fm-cup-stat {
        flex: 1;
        min-width: 0;
    }

    .fm-bracket-scroll {
        padding: 12px 4px 16px;
    }

    .fm-round {
        flex-basis: 200px;
        width: 200px;
        padding: 0 12px;
    }
}

/* ============================================
   LEAGUE PAGE - REPUTATION
   ============================================ */

.fm-rep-list {
    padding: 0;
}

.fm-rep-row {
    display: flex;
    align-items: center;
    padding: 8px 14px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.025);
    color: #b0bac2;
    gap: 10px;
    transition: background 0.1s ease;
}

.fm-rep-row:last-child {
    border-bottom: none;
}

.fm-rep-row:hover {
    background: rgba(255, 255, 255, 0.03);
    color: #b0bac2;
}

.fm-rep-row:nth-child(even) {
    background: rgba(0, 0, 0, 0.08);
}

.fm-rep-row:nth-child(even):hover {
    background: rgba(255, 255, 255, 0.03);
}

.rep-pos {
    width: 24px;
    font-size: 11px;
    font-weight: 700;
    color: #4e5a63;
    text-align: center;
    flex-shrink: 0;
}

.rep-flag {
    flex-shrink: 0;
    width: 30px;
    display: flex;
    align-items: center;
}

.rep-detail {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.rep-league-name {
    font-size: 13px;
    font-weight: 500;
    color: #d8dee4;
    white-space: normal;
    overflow-wrap: anywhere;
    line-height: 1.25;
}

.fm-rep-row:hover .rep-league-name {
    color: #fff;
}

.rep-ctry {
    font-size: 10px;
    color: #465058;
    font-weight: 500;
}

/* ============================================
   TEAM SQUAD PAGE
   ============================================ */

.fm-squad {
    width: 100%;
    border-collapse: collapse;
    font-variant-numeric: tabular-nums;
}

.fm-squad thead th {
    padding: 9px 10px;
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: #4e5a63;
    text-align: left;
    border-bottom: 1px solid #2a353d;
    background: #1e282e;
}

.fm-squad tbody tr {
    transition: background 0.1s ease;
    border-bottom: 1px solid rgba(255, 255, 255, 0.025);
}

.fm-squad tbody tr:nth-child(even) {
    background: rgba(0, 0, 0, 0.1);
}

.fm-squad tbody tr:hover {
    background: rgba(255, 255, 255, 0.04);
}

.fm-squad tbody td {
    padding: 8px 10px;
    font-size: 15px;
    color: #b0bac2;
    vertical-align: middle;
}

.fm-squad .sq-inf {
    width: 45px;
    text-align: center;
}

.fm-squad a {
    color: #d8dee4;
}

.fm-squad a:hover {
    color: #fff;
    text-decoration: underline !important;
}

.fm-squad .sq-name {
    white-space: nowrap;
}

.fm-squad .sq-name a {
    font-weight: 400;
}

.fm-squad .sq-name .fa-status {
    white-space: normal;
    margin-top: 2px;
    font-size: 11px;
    line-height: 1.3;
    color: var(--fm-muted, #8a8f98);
}

.fm-squad .sq-name .fa-status .fa-stage {
    font-weight: 600;
}

.fm-squad .sq-pos {
    color: #7a868e;
    font-size: 12px;
    white-space: nowrap;
    width: 3em;
}

.fm-squad .sq-nat {
    width: 32px;
}

.fm-squad .sq-ability {
    width: 3.5em;
}

.fm-squad .sq-potential {
    width: 3.5em;
}

.fm-squad .sq-age {
    width: 6em;
    text-align: center;
}

.fm-squad .sq-games {
    text-align: center;
}

.fm-squad .sq-cond {
    width: 8em;
}

.fm-squad .sq-morale {
    text-align: center;
}

.fm-squad .sq-value {
    text-align: center;
}

.fm-squad tbody tr.sq-loan-in a {
    color: #437fa2 !important;
}

.fm-squad tbody tr.sq-loan-out a {
    color: #07385a;
}

.fm-squad tbody tr.sq-force-pick a {
    color: #59c63a !important;
}

.fm-squad-center thead th,
.fm-squad-center tbody td {
    text-align: center;
}

.fm-squad-fa .sq-pos {
    text-align: center;
}

/* ============================================
   TEAM SCHEDULE PAGE
   ============================================ */

.fm-schedule {
    width: 100%;
    border-collapse: collapse;
    font-variant-numeric: tabular-nums;
}

.fm-schedule thead th {
    padding: 9px 10px;
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: #4e5a63;
    text-align: left;
    border-bottom: 1px solid #2a353d;
    background: #1e282e;
}

.fm-schedule tbody tr {
    transition: background 0.1s ease;
    border-bottom: 1px solid rgba(255, 255, 255, 0.025);
}

.fm-schedule tbody tr:nth-child(even) {
    background: rgba(0, 0, 0, 0.1);
}

.fm-schedule tbody tr:hover {
    background: rgba(255, 255, 255, 0.04);
}

.fm-schedule tbody td {
    padding: 8px 10px;
    font-size: 13px;
    color: #b0bac2;
    vertical-align: middle;
}

.fm-schedule a {
    color: #d8dee4;
    font-weight: 500;
}

.fm-schedule a:hover {
    color: #fff;
    text-decoration: underline !important;
}

.fm-schedule .sch-date {
    width: 100px;
    color: #7a868e;
    font-size: 12px;
}

.fm-schedule .sch-time {
    width: 70px;
    color: #7a868e;
    font-size: 12px;
}

.fm-schedule .sch-venue {
    width: 70px;
    text-align: center;
}

.fm-schedule .sch-result {
    width: 100px;
    text-align: center;
}

.fm-schedule .sch-comp {
    color: #5e6b74;
    font-size: 12px;
}

/* Venue badge */

.fm-venue {
    display: inline-block;
    padding: 2px 10px;
    font-size: 11px;
    font-weight: 700;
    border-radius: 3px;
    text-transform: uppercase;
}

.venue-h {
    background: rgba(46, 204, 113, 0.15);
    color: #2ecc71;
}

.venue-a {
    background: rgba(52, 152, 219, 0.15);
    color: #3498db;
}

/* Result link */

.fm-result {
    font-weight: 700;
    font-size: 14px;
    color: #fff !important;
    font-variant-numeric: tabular-nums;
}

.fm-result:hover {
    color: #4a9d5b !important;
}

.fm-pending {
    color: #4e5a63;
    font-size: 14px;
}

/* ============================================
   PLAYER PAGE — FM2017 AUTHENTIC
   ============================================ */

/* --- Player header banner --- */

.fm-player-header {
    background: linear-gradient(180deg, #1c2830 0%, #18222a 100%);
    border: 1px solid #263340;
    border-radius: 4px;
    overflow: hidden;
    margin-bottom: 14px;
    box-shadow:
        0 2px 12px rgba(0, 0, 0, 0.3),
        inset 0 1px 0 rgba(255, 255, 255, 0.03);
}

/* --- Banner: photo + identity --- */

.fm-ph-banner {
    display: flex;
    align-items: stretch;
    border-bottom: 1px solid #263340;
    background: linear-gradient(135deg, #141c22 0%, #1a2630 40%, #1c2a34 100%);
    position: relative;
}

.fm-ph-banner::before {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    width: 40%;
    background: linear-gradient(90deg, transparent, rgba(74, 157, 91, 0.02));
    pointer-events: none;
}

.fm-ph-photo {
    flex-shrink: 0;
    width: 120px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 0;
    background: rgba(0, 0, 0, 0.15);
    border-right: 1px solid #263340;
    position: relative;
}

.fm-ph-photo-frame {
    width: 95px;
    height: 110px;
    border-radius: 4px;
    background: linear-gradient(145deg, #1e2e38, #162028);
    border: 2px solid #344a58;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    position: relative;
    box-shadow:
        0 4px 16px rgba(0, 0, 0, 0.35),
        inset 0 1px 0 rgba(255, 255, 255, 0.05);
}

.fm-ph-watermark {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    padding: 2px 5px;
    background: rgba(0, 0, 0, 0.45);
    color: #fff;
    font-size: 9px;
    line-height: 1.2;
    letter-spacing: 0.3px;
    text-align: center;
    white-space: nowrap;
    text-decoration: none;
}

.fm-ph-watermark:hover {
    text-decoration: underline;
}

.fm-ph-photo-img {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.fm-ph-photo-img i {
    font-size: 32px;
    color: #2e4452;
    margin-top: 8px;
}

.fm-ph-photo-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 4px;
}

/* --- Identity block --- */

.fm-ph-identity {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 10px 24px;
    min-width: 0;
    position: relative;
    z-index: 1;
}

.fm-ph-id-cols {
    display: flex;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    -ms-overflow-style: none;
    width: 100%;
    font-size: 17px;
}

.fm-ph-id-cols::-webkit-scrollbar {
    display: none;
}

.fm-ph-id-col {
    min-width: 200px;
    padding: 4px 18px;
    border-right: 1px solid #263340;
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.fm-ph-id-col.basic {
    flex: 0 0 20%;
}

.fm-ph-id-col.contract {
    flex: 1 1 auto;
    min-width: 350px;
}

.fm-ph-id-col.potential {
    flex: 0 0 40%;
}

.fm-ph-id-col:first-child {
    padding-left: 0;
}

.fm-ph-id-col:first-child .fm-ph-meta .fm-detail-value {
    font-size: 15px;
    color: #686b6e;
}

.fm-ph-id-col:first-child .fm-ph-meta.fm-ph-caps .fm-detail-value {
    font-size: 12px;
}

.fm-ph-id-col .fm-detail-value {
    color: #fff;
}

.fm-ph-contract .fm-detail-value {
    font-size: 12px;
    color: #686868;
    text-align: left;
}

.fm-ph-contract .fm-salary {
    color: #fff;
    margin-right: 6px;
}

.fm-ph-id-col .fm-ph-meta .fm-detail-value.fm-squad-status {
    color: #686b6e;
    font-size: 12px;
    font-weight: 400;
    margin-top: 4px;
}

.fm-ph-value {
    font-size: 1em !important;
    font-weight: 300;
}

.fm-ph-contracted {
    color: #686b6e !important;
}

.fm-ph-contracted a {
    color: #fff !important;
    text-decoration: none !important;
}

.fm-ph-id-col:nth-child(2) .fm-ph-meta {
    white-space: nowrap;
}

.fm-ph-id-col:last-child {
    border-right: none;
}

.fm-ph-name-row {
    display: flex;
    align-items: center;
    gap: 6px 10px;
    flex-wrap: wrap;
}

.fm-ph-flag {
    display: flex;
    align-items: center;
    flex-shrink: 0;
}

.fm-ph-flag .flag {
    width: 24px;
    height: 18px;
    border-radius: 2px;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
}

.fm-ph-name {
    margin: 0;
    font-size: 22px;
    font-weight: 700;
    color: #edf1f5;
    letter-spacing: -0.3px;
    line-height: 1.2;
    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
}

.fm-ph-meta {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 0;
}

.fm-ph-nat {
    font-size: 13px;
    color: #94a3af;
    font-weight: 500;
}

.fm-ph-sep {
    width: 3px;
    height: 3px;
    border-radius: 50%;
    background: #3a4a56;
    flex-shrink: 0;
}

.fm-ph-age {
    font-size: 1em;
    color: #ffffff;
    font-weight: 300;
}

.fm-ph-born {
    font-size: 12px;
    color: #546a78;
}

/* --- Loan status label --- */

.fm-ph-loan {
    font-size: 0.9em;
}

.fm-ph-loan-label {
    font-weight: 600;
}

.fm-ph-loan-label.loan-in {
    color: #437fa2;
}

.fm-ph-loan-label.loan-out {
    color: #00838f;
}

.fm-ph-loan-text {
    color: #94a3af;
}

.fm-ph-loan-text a {
    color: #94a3af;
}

.fm-ph-loan-text a:hover {
    color: #edf1f5;
}

.fm-ph-injury {
    font-size: 13px;
    color: #e53935;
    font-weight: 500;
}

/* --- Star ratings & condition --- */

.fm-ph-rating-item {
    display: flex;
    align-items: center;
    gap: 45px;
}

.fm-ph-rating-item .fm-cond {
    flex: 1;
}

.fm-ph-rlabel {
    font-size: 10px;
    color: #546a78;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.8px;
    width: 6em;
    flex-shrink: 0;
}

.fm-detail-row {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    padding: 4px 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.025);
}

.fm-detail-row:last-child {
    border-bottom: none;
}

.fm-detail-label {
    font-size: 15px;
    color: #546a78;
    font-weight: 400;
    white-space: nowrap;
    margin-right: 12px;
    flex-shrink: 0;
    text-transform: capitalize;
}

.fm-detail-value {
    font-size: 1em;
    color: #686b6e;
    font-weight: 400;
    text-align: right;
    min-width: 0;
}

.fm-detail-value a {
    color: #c8d4de;
    transition: color 0.12s;
}

.fm-detail-value a:hover {
    color: #fff;
}

.fm-val-highlight {
    color: #8cc87a;
    font-weight: 600;
}

.fm-detail-hint {
    font-size: 11px;
    color: #546a78;
    font-weight: 400;
}

/* --- Personal tab --- */

.fm-personal-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    margin-bottom: 20px;
}

.fm-personal-fullrow {
    margin-top: 20px;
}

.fm-happiness-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

.fm-happiness-col {
    min-width: 0;
}

.fm-personal-col {
    min-width: 0;
    display: flex;
    flex-direction: column;
}

/* Panels take their content height and never shrink. `flex: 1` gave every panel
   a 0 basis, so a column holding several of them split the height evenly and the
   tallest one lost its last rows to the overflow:hidden on .fm-panel. Only the
   last panel absorbs the leftover height, so the two columns still finish level. */
.fm-personal-col > .fm-panel {
    flex: 0 0 auto;
}

.fm-personal-col > .fm-panel:last-child {
    flex: 1 0 auto;
}

.fm-personal-section {
    padding: 12px 16px;
}

.fm-personal-section + .fm-personal-section {
    border-top: 1px solid #1a2a34;
}

.fm-section-subtitle {
    font-size: 12px;
    font-weight: 600;
    color: #5a7080;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin: 0 0 8px 0;
}

.fm-personal-detail {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 4px 0;
}

.fm-bar-row {
    flex-wrap: wrap;
    gap: 0;
}

.fm-bar-row .fm-detail-label {
    flex: 1 0 100%;
}

.fm-bar-row .fm-mini-bar {
    flex: 1 1 0;
    margin-left: 0;
}

.fm-bar-row .fm-detail-value-sm {
    width: 36px;
    flex-shrink: 0;
    margin-left: 8px;
    text-align: right;
}

.fm-bar-row .fm-rep-label {
    width: 110px;
    white-space: nowrap;
}

@media (min-width: 600px) {
    .fm-bar-row {
        flex-wrap: nowrap;
    }

    .fm-bar-row .fm-detail-label {
        flex: 0 0 auto;
        margin-right: auto;
    }

    .fm-bar-row .fm-mini-bar {
        flex: 0 0 120px;
        margin-left: auto;
    }
}

.fm-personal-table {
    width: 100%;
    border-collapse: collapse;
}

.fm-personal-table td {
    padding: 4px 0;
    font-size: 13px;
}

.fm-morale-row {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 4px 0;
}

.fm-morale-label {
    font-size: 13px;
    color: #94a3af;
    font-weight: 500;
    min-width: 50px;
}

.fm-morale-bar {
    flex: 1;
    height: 6px;
    background: #1a2a34;
    border-radius: 3px;
    overflow: hidden;
}

.fm-morale-fill {
    height: 100%;
    border-radius: 3px;
    transition: width 0.3s;
    background: #5a7080;
}

.fm-morale-fill.fm-morale-good {
    background: #4caf50;
}

.fm-morale-fill.fm-morale-okay {
    background: #ff9800;
}

.fm-morale-fill.fm-morale-poor {
    background: #e53935;
}

.fm-morale-val {
    font-size: 13px;
    color: #c8d4de;
    font-weight: 500;
    min-width: 70px;
    text-align: right;
}

.fm-factor-name {
    color: #94a3af;
    font-weight: 500;
}

.fm-factor-val {
    color: #c8d4de;
    font-weight: 500;
    text-align: right;
}

.fm-factor-val.fm-factor-pos {
    color: #4caf50;
}

.fm-factor-val.fm-factor-neg {
    color: #e53935;
}

.fm-concerns-title {
    color: #e53935;
}

.fm-concerns-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.fm-concerns-list li {
    font-size: 13px;
    color: #e53935;
    padding: 3px 0;
    padding-left: 14px;
    position: relative;
}

.fm-concerns-list li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 10px;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #e53935;
}

/* ── The mind panel ─────────────────────────────────────────────
   What a player wants, and what he remembers about this club.
   The 'unspoken' modifier is load-bearing rather than decorative: the
   Latent and Active rungs of the goal ladder are the ones nobody has
   heard him say, and a manager reading this page needs to be able to
   tell a private want from a public one at a glance. */

.fm-mind-wants,
.fm-mind-memories {
    list-style: none;
    padding: 0;
    margin: 0;
}

.fm-mind-want {
    padding: 6px 0;
    border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}

.fm-mind-want:last-child {
    border-bottom: none;
}

.fm-mind-want-head {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 8px;
    margin-bottom: 4px;
}

.fm-mind-want-name {
    font-size: 13px;
    font-weight: 600;
}

.fm-mind-want-status {
    font-size: 11px;
    color: #757575;
    text-align: right;
    white-space: nowrap;
}

.fm-mind-unspoken .fm-mind-want-name {
    font-weight: 500;
    font-style: italic;
    opacity: 0.82;
}

.fm-mind-fill {
    background: #5c6bc0;
}

.fm-mind-unspoken .fm-mind-fill {
    background: #9fa8da;
}

.fm-mind-note {
    font-size: 11px;
    color: #757575;
    margin-top: 3px;
}

.fm-mind-blocked {
    color: #e53935;
}

.fm-mind-memory {
    font-size: 13px;
    padding: 3px 0 3px 14px;
    position: relative;
}

.fm-mind-memory::before {
    content: "";
    position: absolute;
    left: 0;
    top: 10px;
    width: 6px;
    height: 6px;
    border-radius: 50%;
}

.fm-mind-warm::before {
    background: #4caf50;
}

.fm-mind-sour::before {
    background: #e53935;
}

.fm-rel-good {
    color: #4caf50;
}

.fm-rel-poor {
    color: #e53935;
}

.fm-fav-club-link {
    color: #5ba3d9;
    text-decoration: none;
    font-size: 13px;
}

.fm-fav-club-link:hover {
    text-decoration: underline;
}

.fm-mini-bar {
    flex: 1;
    height: 4px;
    background: #1a2a34;
    border-radius: 2px;
    overflow: hidden;
    max-width: 120px;
}

.fm-mini-fill {
    height: 100%;
    border-radius: 2px;
    background: #437fa2;
}

.fm-event-desc {
    color: #94a3af;
    font-weight: 500;
}

.fm-event-desc.fm-event-pos {
    color: #4caf50;
}

.fm-event-desc.fm-event-neg {
    color: #e53935;
}

.fm-event-ago {
    color: #546a78;
    font-size: 12px;
    text-align: right;
    white-space: nowrap;
}

.fm-empty-state {
    padding: 32px 16px;
    text-align: center;
    color: #546a78;
    font-size: 13px;
}

/* ============================================
   FM PLAYER EVENTS — DOSSIER LAYOUT
   ============================================
   The events page is the player's dressing-room ledger: each item is a
   case-file card. A 3px coloured rail on the left flags valence (positive
   / negative / neutral) and weight (big events glow). The header row shows
   the headline, optional severity pill, and a relative-time stamp; the
   body is a label/value grid (CAUSE / IMPACT / OUTLOOK) so the eye can
   land on the four facts (who / why / what / next) without reading prose.
*/

.fm-evt-panel {
    margin-top: 0;
}

.fm-evt-list {
    list-style: none;
    margin: 0;
    padding: 8px 12px 14px;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.fm-evt-card {
    position: relative;
    display: flex;
    align-items: stretch;
    gap: 12px;
    padding: 10px 12px 11px 16px;
    border: 1px solid #243140;
    border-radius: 4px;
    background: linear-gradient(180deg, #1b262e 0%, #18222a 100%);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.015);
    transition:
        border-color 120ms ease,
        transform 120ms ease;
}

.fm-evt-card:hover {
    border-color: #2f3f50;
}

/* Coloured rail along the leading edge of the card. The card uses
   absolute positioning here so the rail butts the rounded corner cleanly
   without margin math. */
.fm-evt-rail {
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    width: 3px;
    border-radius: 4px 0 0 4px;
    background: #3d4f5c;
}

.fm-evt-content {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 7px;
}

/* --- Header row --- */

.fm-evt-head {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    justify-content: space-between;
}

.fm-evt-title {
    display: flex;
    align-items: flex-start;
    gap: 9px;
    min-width: 0;
    flex: 1;
}

/* The diamond marker echoes the rail's colour but sits inside the card
   so the headline retains a fixed left edge regardless of severity. */
.fm-evt-marker {
    width: 7px;
    height: 7px;
    margin-top: 6px;
    flex-shrink: 0;
    transform: rotate(45deg);
    background: #4a5a66;
    box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.25);
}

.fm-evt-headline {
    margin: 0;
    font-size: 15px;
    font-weight: 500;
    line-height: 1.4;
    color: #d8dde2;
    letter-spacing: 0.1px;
}

.fm-evt-partner {
    color: #5cb86c;
    font-weight: 600;
    text-decoration: none;
    border-bottom: 1px dotted rgba(92, 184, 108, 0.45);
    padding-bottom: 0;
}

.fm-evt-partner:hover {
    color: #6dd97e;
    border-bottom-color: rgba(109, 217, 126, 0.7);
}

.fm-evt-meta {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-shrink: 0;
}

.fm-evt-time {
    font-size: 10px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.6px;
    color: #51626d;
    white-space: nowrap;
}

/* --- Severity pill --- */

.fm-evt-severity {
    display: inline-block;
    padding: 2px 7px;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 1px;
    text-transform: uppercase;
    border-radius: 2px;
    border: 1px solid transparent;
    line-height: 1.4;
}

.fm-evt-severity-minor {
    background: rgba(120, 144, 156, 0.12);
    color: #8aa1ad;
    border-color: rgba(120, 144, 156, 0.25);
}

.fm-evt-severity-moderate {
    background: rgba(255, 167, 38, 0.12);
    color: #ffb14d;
    border-color: rgba(255, 167, 38, 0.32);
}

.fm-evt-severity-serious {
    background: rgba(255, 112, 67, 0.15);
    color: #ff9067;
    border-color: rgba(255, 112, 67, 0.4);
}

.fm-evt-severity-major {
    background: rgba(229, 57, 53, 0.18);
    color: #ff6e6a;
    border-color: rgba(229, 57, 53, 0.55);
    box-shadow: inset 0 0 0 1px rgba(229, 57, 53, 0.25);
}

/* --- Decision chip ---
   The register the Decisions tab used to own now shares this feed. Those
   rows are paperwork rather than feeling — a club filing, dated to the day
   — and the chip names the kind so the eye can skim past the ledger to the
   mood without reading either. */

.fm-evt-kind {
    display: inline-block;
    padding: 2px 7px;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 1px;
    text-transform: uppercase;
    border-radius: 2px;
    line-height: 1.4;
    white-space: nowrap;
    background: rgba(90, 110, 124, 0.14);
    color: #8a9aa6;
    border: 1px solid rgba(90, 110, 124, 0.3);
}

/* --- Body grid: CAUSE / IMPACT / OUTLOOK --- */

.fm-evt-grid {
    display: grid;
    grid-template-columns: max-content 1fr;
    gap: 4px 14px;
    margin: 0;
    padding: 8px 0 1px;
    border-top: 1px solid #1f2a32;
}

.fm-evt-label {
    margin: 0;
    align-self: center;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1.4px;
    color: #4f6473;
}

.fm-evt-value {
    margin: 0;
    font-size: 14px;
    line-height: 1.1;
    color: #b8c0c8;
}

.fm-evt-outlook {
    color: #98a4ae;
    font-style: italic;
}

/* --- Impact chip ---
   Replaces the old prose "Morale -2. Severity: Moderate." with a single
   inline pill: an SVG arrow icon, the morale delta, and a small uppercase
   label. The chip's colouring tracks the delta sign, not the event's
   valence — so a SettledIntoSquad event (positive) and a fan-praise lift
   land in the same green even when their headlines feel different. */

.fm-evt-value-chips {
    display: flex;
    align-items: center;
    gap: 6px;
    padding-top: 1px;
    flex-wrap: wrap;
}

.fm-evt-chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 3px 9px 3px 7px;
    border-radius: 999px;
    border: 1px solid transparent;
    font-size: 11px;
    line-height: 1;
    font-variant-numeric: tabular-nums;
}

.fm-evt-chip-arrow {
    width: 11px;
    height: 11px;
    flex-shrink: 0;
}

.fm-evt-chip-value {
    font-weight: 700;
    font-size: 12px;
    letter-spacing: 0.2px;
}

.fm-evt-chip-label {
    font-size: 9px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1.2px;
    opacity: 0.78;
    padding-left: 2px;
    border-left: 1px solid currentColor;
    margin-left: 1px;
    /* `border-left: 1px solid currentColor` plus 78% opacity gives a
       hairline divider that auto-tints with the chip colour without a
       second variable. */
}

.fm-evt-chip-up {
    background: rgba(76, 175, 80, 0.14);
    color: #6cd078;
    border-color: rgba(76, 175, 80, 0.4);
}
.fm-evt-chip-up .fm-evt-chip-arrow {
    fill: #6cd078;
}

.fm-evt-chip-down {
    background: rgba(229, 57, 53, 0.16);
    color: #ff7a76;
    border-color: rgba(229, 57, 53, 0.45);
}
.fm-evt-chip-down .fm-evt-chip-arrow {
    fill: #ff7a76;
}

.fm-evt-chip-flat {
    background: rgba(120, 144, 156, 0.12);
    color: #94a3ad;
    border-color: rgba(120, 144, 156, 0.3);
}
.fm-evt-chip-flat .fm-evt-chip-arrow {
    fill: #94a3ad;
}

/* Big events bump the chip a notch — heavier border, soft outer glow so
   it reads from across the timeline without redesigning the chip body. */
.fm-evt-big .fm-evt-chip-up {
    box-shadow:
        0 0 0 1px rgba(76, 175, 80, 0.18),
        0 0 8px rgba(76, 175, 80, 0.18);
}
.fm-evt-big .fm-evt-chip-down {
    box-shadow:
        0 0 0 1px rgba(229, 57, 53, 0.22),
        0 0 8px rgba(229, 57, 53, 0.2);
}

/* --- Valence variants --- */

/* Neutral (default) */
.fm-evt-neutral .fm-evt-rail {
    background: linear-gradient(180deg, #5a6e7c 0%, #455661 100%);
}
.fm-evt-neutral .fm-evt-marker {
    background: #6b7e8b;
}

/* Positive */
.fm-evt-positive .fm-evt-rail {
    background: linear-gradient(180deg, #4caf50 0%, #2f7a36 100%);
}
.fm-evt-positive .fm-evt-marker {
    background: #4caf50;
    box-shadow:
        0 0 0 1px rgba(0, 0, 0, 0.3),
        0 0 4px rgba(76, 175, 80, 0.35);
}

/* Negative */
.fm-evt-negative .fm-evt-rail {
    background: linear-gradient(180deg, #e53935 0%, #8a1c1a 100%);
}
.fm-evt-negative .fm-evt-marker {
    background: #e53935;
    box-shadow:
        0 0 0 1px rgba(0, 0, 0, 0.3),
        0 0 4px rgba(229, 57, 53, 0.35);
}

/* Decision — a club filing carries no valence, so it takes a colder rail
   than the neutral mood card and a square marker instead of the diamond.
   Placed after the valence variants deliberately: a decision row is always
   also `.fm-evt-neutral`, and these have to win. */
.fm-evt-decision .fm-evt-rail {
    background: linear-gradient(180deg, #4a5c68 0%, #38464f 100%);
}
.fm-evt-decision .fm-evt-marker {
    transform: none;
    border-radius: 1px;
    background: #5f727e;
    box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.25);
}
.fm-evt-decision .fm-evt-headline {
    color: #c9d1d8;
}

/* Mind — what turned in his own head. Unlike a decision it keeps its
   valence rail, because a note about a conviction is genuinely warm or
   sour; only the marker and the chip mark it as coming from the inside.
   The hollow marker is the whole idea: nothing here was observed, it was
   concluded. */
.fm-evt-mind .fm-evt-marker {
    background: transparent;
    border: 1.5px solid #7d6fa8;
    box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.25);
}
.fm-evt-mind.fm-evt-neutral .fm-evt-rail {
    background: linear-gradient(180deg, #5f5580 0%, #453d5e 100%);
}
.fm-evt-kind-mind {
    background: rgba(125, 111, 168, 0.16);
    color: #a396cc;
    border-color: rgba(125, 111, 168, 0.34);
}

/* --- Big events: career-visible moments --- */

.fm-evt-big {
    border-color: #2d3e4d;
    background: linear-gradient(180deg, #1f2c34 0%, #1a242c 100%);
}

.fm-evt-big .fm-evt-rail {
    width: 4px;
    box-shadow: 0 0 8px rgba(255, 255, 255, 0.06);
}

.fm-evt-big .fm-evt-headline {
    font-weight: 700;
    color: #e7ecf1;
    font-size: 15px;
}

.fm-evt-big.fm-evt-positive {
    border-color: rgba(76, 175, 80, 0.35);
}
.fm-evt-big.fm-evt-positive .fm-evt-rail {
    background: linear-gradient(180deg, #66bb6a 0%, #2f7a36 100%);
    box-shadow: 0 0 10px rgba(76, 175, 80, 0.45);
}

.fm-evt-big.fm-evt-negative {
    border-color: rgba(229, 57, 53, 0.4);
}
.fm-evt-big.fm-evt-negative .fm-evt-rail {
    background: linear-gradient(180deg, #ef5350 0%, #8a1c1a 100%);
    box-shadow: 0 0 10px rgba(229, 57, 53, 0.4);
}

.fm-evt-big.fm-evt-neutral .fm-evt-rail {
    background: linear-gradient(180deg, #b0bec5 0%, #5a6e7c 100%);
    box-shadow: 0 0 8px rgba(176, 190, 197, 0.25);
}

/* --- Empty state --- */

.fm-evt-empty {
    padding: 56px 20px 64px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 14px;
}

.fm-evt-empty-mark {
    width: 44px;
    height: 44px;
    border: 1px dashed #2f4250;
    border-radius: 50%;
    position: relative;
}

.fm-evt-empty-mark::before {
    content: "";
    position: absolute;
    top: 50%;
    left: -8px;
    right: -8px;
    height: 1px;
    background: linear-gradient(
        90deg,
        transparent 0,
        #2f4250 20%,
        #2f4250 80%,
        transparent 100%
    );
    transform: rotate(-25deg);
}

.fm-evt-empty-text {
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 1.4px;
    color: #4f6371;
}

/* --- Responsive: collapse the label/value grid on narrow screens --- */

@media (max-width: 640px) {
    .fm-evt-head {
        flex-direction: column;
        gap: 6px;
    }
    .fm-evt-meta {
        order: 2;
        width: 100%;
        flex-wrap: wrap;
        gap: 4px 8px;
        align-items: baseline;
    }
    .fm-evt-severity {
        max-width: 100%;
        padding: 1px 6px;
        font-size: 8.5px;
        letter-spacing: 0.55px;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }
    .fm-evt-time {
        font-size: 9.5px;
        letter-spacing: 0.45px;
    }
    .fm-evt-grid {
        grid-template-columns: 1fr;
        gap: 1px 0;
    }
    .fm-evt-label {
        margin-top: 6px;
    }
    .fm-evt-label:first-child {
        margin-top: 0;
    }
}

/* --- Radar chart --- */

.fm-radar-wrap {
    display: flex;
    justify-content: center;
    padding: 4px 0;
}

.fm-radar-svg {
    width: 100%;
    max-width: 380px;
}

.fm-radar-grid {
    fill: none;
    stroke: #1e3340;
    stroke-width: 0.7;
}

.fm-radar-axis {
    stroke: #1e3340;
    stroke-width: 0.5;
}

.fm-radar-area {
    fill: rgba(67, 127, 162, 0.3);
    stroke: #437fa2;
    stroke-width: 1.5;
}

.fm-radar-label {
    font-size: 10px;
    fill: #94a3af;
    dominant-baseline: middle;
}

.fm-detail-value-sm {
    font-size: 12px;
    color: #c8d4de;
    width: 36px;
    flex-shrink: 0;
    text-align: right;
}

.fm-condition-good {
    background: #4caf50;
}

.fm-condition-okay {
    background: #ff9800;
}

.fm-condition-poor {
    background: #e53935;
}

/* --- Contract tab --- */

.fm-contract-wage {
    color: #8cc87a;
    font-weight: 600;
    font-size: 1em;
}

.fm-contract-shirt {
    color: #c8d4de;
    font-weight: 700;
    font-size: 1em;
}

.fm-contract-status {
    color: #94a3af;
    font-weight: 500;
}

.fm-contract-expiry {
    color: #c8d4de;
    font-weight: 500;
}

.fm-contract-bonus-val {
    color: #8cc87a;
    font-weight: 500;
}

.fm-contract-alert {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    background: rgba(229, 57, 53, 0.1);
    border: 1px solid rgba(229, 57, 53, 0.25);
    border-radius: 4px;
    color: #ef5350;
    font-size: 13px;
    font-weight: 500;
}

.fm-contract-alert-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: rgba(229, 57, 53, 0.2);
    color: #ef5350;
    font-weight: 700;
    font-size: 12px;
    flex-shrink: 0;
}

.fm-contract-loan-badge {
    display: inline-block;
    padding: 2px 10px;
    background: rgba(66, 165, 245, 0.15);
    border: 1px solid rgba(66, 165, 245, 0.3);
    border-radius: 3px;
    color: #42a5f5;
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

/* --- Content grid: positions + attributes --- */

.fm-player-grid {
    display: grid;
    grid-template-columns: 230px 1fr;
    gap: 14px;
    margin-top: 14px;
}

.fm-player-grid-left,
.fm-player-grid-right {
    min-width: 0;
}

.fm-player-grid-left .fm-panel,
.fm-player-grid-right .fm-panel {
    height: 100%;
}

/* --- Pitch position map --- */

.fp-pitch {
    padding: 12px;
}

.fp-field {
    position: relative;
    width: 100%;
    margin: 0 auto;
    aspect-ratio: 0.58;
    background: linear-gradient(
        180deg,
        #173017 0%,
        #1a3a1a 30%,
        #16321a 60%,
        #143014 100%
    );
    border: 2px solid rgba(255, 255, 255, 0.12);
    border-radius: 3px;
    overflow: hidden;
    box-shadow: inset 0 0 30px rgba(0, 0, 0, 0.25);
}

/* Field stripe effect */

.fp-field::before {
    content: "";
    position: absolute;
    inset: 0;
    background: repeating-linear-gradient(
        180deg,
        transparent,
        transparent 10%,
        rgba(255, 255, 255, 0.015) 10%,
        rgba(255, 255, 255, 0.015) 20%
    );
    pointer-events: none;
}

/* Field markings */

.fp-half-line {
    position: absolute;
    top: 50%;
    left: 0;
    right: 0;
    height: 1px;
    background: rgba(255, 255, 255, 0.16);
}

.fp-center-circle {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 40%;
    aspect-ratio: 1;
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 50%;
    transform: translate(-50%, -50%);
}

.fp-penalty-area {
    position: absolute;
    left: 15%;
    width: 70%;
    height: 16%;
    border: 1px solid rgba(255, 255, 255, 0.14);
}

.fp-pa-bot {
    bottom: 0;
    border-bottom: none;
}

.fp-pa-top {
    top: 0;
    border-top: none;
}

.fp-goal-area {
    position: absolute;
    left: 30%;
    width: 40%;
    height: 7%;
    border: 1px solid rgba(255, 255, 255, 0.14);
}

.fp-ga-bot {
    bottom: 0;
    border-bottom: none;
}

.fp-ga-top {
    top: 0;
    border-top: none;
}

/* Position dots */

.fp-dot {
    position: absolute;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.04);
    color: transparent;
    font-size: 0;
    transform: translate(-50%, -50%);
    transition: all 0.2s ease;
}

.fp-dot.fp-on {
    background: linear-gradient(145deg, #4aad5b, #3a8d4a);
    border-color: rgba(74, 157, 91, 0.5);
    box-shadow:
        0 0 8px rgba(74, 157, 91, 0.45),
        0 0 3px rgba(74, 157, 91, 0.3);
}

.fp-dot.fp-primary {
    background: linear-gradient(145deg, #68d44a, #4cb82e);
    border-color: rgba(240, 188, 4, 0.6);
    box-shadow:
        0 0 0 3px rgba(240, 188, 4, 0.55),
        0 0 12px rgba(92, 191, 58, 0.5);
}

.fp-dot:hover {
    color: #fff;
    font-size: 7px;
    font-weight: 700;
    line-height: 22px;
    text-align: center;
    letter-spacing: -0.3px;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.5);
}

/* Row 1: Goalkeeper */
.fp-gk {
    left: 50%;
    bottom: 4%;
    top: auto;
    transform: translate(-50%, 0);
}

/* Row 2: Sweeper */
.fp-sw {
    left: 50%;
    bottom: 14%;
    top: auto;
    transform: translate(-50%, 0);
}

/* Row 3: Defenders */
.fp-dl {
    left: 12%;
    bottom: 23%;
    top: auto;
    transform: translate(-50%, 0);
}

.fp-dcl {
    left: 33%;
    bottom: 23%;
    top: auto;
    transform: translate(-50%, 0);
}

.fp-dc {
    left: 50%;
    bottom: 23%;
    top: auto;
    transform: translate(-50%, 0);
}

.fp-dcr {
    left: 67%;
    bottom: 23%;
    top: auto;
    transform: translate(-50%, 0);
}

.fp-dr {
    left: 88%;
    bottom: 23%;
    top: auto;
    transform: translate(-50%, 0);
}

/* Row 4: Defensive Mid / Wingbacks */
.fp-wl {
    left: 12%;
    bottom: 35%;
    top: auto;
    transform: translate(-50%, 0);
}

.fp-dm {
    left: 50%;
    bottom: 35%;
    top: auto;
    transform: translate(-50%, 0);
}

.fp-wr {
    left: 88%;
    bottom: 35%;
    top: auto;
    transform: translate(-50%, 0);
}

/* Row 5: Midfielders */
.fp-ml {
    left: 12%;
    bottom: 48%;
    top: auto;
    transform: translate(-50%, 0);
}

.fp-mcl {
    left: 33%;
    bottom: 48%;
    top: auto;
    transform: translate(-50%, 0);
}

.fp-mc {
    left: 50%;
    bottom: 48%;
    top: auto;
    transform: translate(-50%, 0);
}

.fp-mcr {
    left: 67%;
    bottom: 48%;
    top: auto;
    transform: translate(-50%, 0);
}

.fp-mr {
    left: 88%;
    bottom: 48%;
    top: auto;
    transform: translate(-50%, 0);
}

/* Row 6: Attacking Midfielders */
.fp-aml {
    left: 12%;
    bottom: 65%;
    top: auto;
    transform: translate(-50%, 0);
}

.fp-amc {
    left: 50%;
    bottom: 65%;
    top: auto;
    transform: translate(-50%, 0);
}

.fp-amr {
    left: 88%;
    bottom: 65%;
    top: auto;
    transform: translate(-50%, 0);
}

/* Row 7: Forwards */
.fp-fl {
    left: 25%;
    bottom: 76%;
    top: auto;
    transform: translate(-50%, 0);
}

.fp-fc {
    left: 50%;
    bottom: 76%;
    top: auto;
    transform: translate(-50%, 0);
}

.fp-fr {
    left: 75%;
    bottom: 76%;
    top: auto;
    transform: translate(-50%, 0);
}

/* Row 8: Striker */
.fp-st {
    left: 50%;
    bottom: 87%;
    top: auto;
    transform: translate(-50%, 0);
}

/* Preferred foot */

.fm-pref-foot {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    padding: 10px 14px;
    border-top: 1px solid #263340;
    background: rgba(0, 0, 0, 0.08);
}

/* --- Attributes / Skills Grid --- */

.fm-skills-grid {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 0;
    padding: 0;
}

.fm-skill-col {
    padding: 12px 14px;
    border-right: 1px solid #263340;
}

.fm-skill-col:last-child {
    border-right: none;
}

.fm-skill-col h4 {
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: #546a78;
    margin: 0 0 8px 0;
    padding-bottom: 7px;
    border-bottom: 1px solid #263340;
}

/* Skills table */

.fm-skills {
    width: 100%;
    border-collapse: collapse;
}

.fm-skills tr {
    transition: background 0.1s;
}

.fm-skills tr:hover {
    background: rgba(255, 255, 255, 0.02);
}

.fm-skills td {
    padding: 3px 4px;
    font-size: 14px;
}

.fm-skills td:first-child {
    color: #7a8c98;
    padding-right: 6px;
}

.fm-skills td:last-child {
    text-align: right;
    width: 28px;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    border-radius: 2px;
    text-align: center;
}

/* FM2017 attribute color tiers */

.td_1 {
    color: #3c4248 !important;
    background: rgba(60, 66, 72, 0.1);
}

.td_2 {
    color: #434a50 !important;
    background: rgba(67, 74, 80, 0.1);
}

.td_3 {
    color: #4a5258 !important;
    background: rgba(74, 82, 88, 0.1);
}

.td_4 {
    color: #525a60 !important;
    background: rgba(82, 90, 96, 0.08);
}

.td_5 {
    color: #5a6268 !important;
    background: rgba(90, 98, 104, 0.06);
}

.td_6 {
    color: #788088 !important;
}

.td_7 {
    color: #848c94 !important;
}

.td_8 {
    color: #909aa2 !important;
}

.td_9 {
    color: #9ca6ae !important;
}

.td_10 {
    color: #8a9c6a !important;
}

.td_11 {
    color: #8a9e72 !important;
}

.td_12 {
    color: #82a468 !important;
}

.td_13 {
    color: #7ea86c !important;
}

.td_14 {
    color: #7aac66 !important;
}

.td_15 {
    color: #74b060 !important;
}

.td_16 {
    color: #5cb84a !important;
    text-shadow: 0 0 8px rgba(92, 184, 74, 0.2);
}

.td_17 {
    color: #52b040 !important;
    text-shadow: 0 0 8px rgba(82, 176, 64, 0.2);
}

.td_18 {
    color: #48a838 !important;
    text-shadow: 0 0 10px rgba(72, 168, 56, 0.25);
}

.td_19 {
    color: #40a030 !important;
    text-shadow: 0 0 10px rgba(64, 160, 48, 0.25);
}

.td_20 {
    color: #38d828 !important;
    text-shadow: 0 0 12px rgba(56, 216, 40, 0.3);
}

/* --- Statistics table --- */

.fm-stats {
    width: 100%;
    border-collapse: collapse;
    font-variant-numeric: tabular-nums;
}

.fm-stats thead th {
    padding: 10px 8px;
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: #4e5e6a;
    text-align: center;
    border-bottom: 1px solid #263340;
    background: rgba(0, 0, 0, 0.08);
}

.fm-stats thead th:first-child {
    text-align: left;
    padding-left: 14px;
    white-space: nowrap;
}

.fm-stats thead th:not(:first-child):not(.sq-club) {
    white-space: nowrap;
}

.fm-stats tbody tr {
    transition: background 0.1s;
}

.fm-stats tbody tr:hover {
    background: rgba(255, 255, 255, 0.03);
}

.fm-stats tbody td {
    padding: 9px 8px;
    font-size: 14px;
    color: #a8b6c0;
    text-align: center;
    border-bottom: 1px solid rgba(255, 255, 255, 0.025);
}

.fm-stats tbody td:first-child {
    text-align: left;
    padding-left: 14px;
    font-weight: 400;
    color: #c0ccd6;
}

.fm-stats a {
    color: #d8dee4;
}

.fm-stats a:hover {
    color: #fff;
    text-decoration: underline !important;
}

.fm-stats-current td {
    background: rgba(74, 157, 91, 0.08);
    font-weight: 600 !important;
    color: #d8dee4 !important;
    border-top: 1px solid #263340;
}

.fm-stats .sq-club,
.fm-stats thead th.sq-club {
    text-align: left;
    padding-left: 14px;
}

.fm-stats .sq-club-loan {
    padding-left: 2em;
}

.fm-loan-badge {
    display: inline-block;
    font-size: 10px;
    font-weight: 600;
    color: #e8a735;
    background: rgba(232, 167, 53, 0.12);
    padding: 1px 6px;
    border-radius: 3px;
    margin-left: 6px;
    vertical-align: middle;
}

.fm-transfer-fee {
    display: inline-block;
    font-size: 10px;
    font-weight: 600;
    color: #4a9d5b;
    background: rgba(74, 157, 91, 0.12);
    padding: 1px 6px;
    border-radius: 3px;
    margin-left: 4px;
    vertical-align: middle;
}

/* Transfer/Loan Tabs */
.fm-transfer-tabs {
    display: flex;
    gap: 0;
    padding: 0 12px;
    border-bottom: 1px solid #2a353d;
}

.fm-ttab {
    background: none;
    border: none;
    padding: 9px 18px;
    font-size: 12px;
    font-weight: 600;
    color: #5a666e;
    cursor: pointer;
    border-bottom: 2px solid transparent;
    transition:
        color 0.15s,
        border-color 0.15s;
    font-family: inherit;
    text-transform: uppercase;
    letter-spacing: 0.4px;
}

.fm-ttab:hover {
    color: #b0bac2;
}

.fm-ttab.active {
    color: #d0d6dc;
    border-bottom-color: #4a9eff;
}

/* --- Player History Table --- */

/* Panels that hold a table too wide to fold: the table keeps its natural
   column widths and the panel scrolls sideways.

   This is deliberately not keyed to a viewport width. The sidebar appears
   at 1200px and takes ~330px out of the content column, so the table has
   *less* room to work with at 1200px than at 1199px — a viewport-keyed
   scroll rule switches the safety net off exactly where it is needed most.
   Below 1200px the wider `.fm-panel` mobile rule hides the scrollbar; here
   it stays visible, because a pointer user has no swipe to fall back on. */
.fm-panel--scrollx {
    display: grid;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
    scrollbar-color: #2f4150 transparent;
}

.fm-panel--scrollx::-webkit-scrollbar {
    height: 8px;
}

.fm-panel--scrollx::-webkit-scrollbar-track {
    background: transparent;
}

.fm-panel--scrollx::-webkit-scrollbar-thumb {
    background: #2f4150;
    border-radius: 4px;
}

.fm-panel--scrollx::-webkit-scrollbar-thumb:hover {
    background: #3b5064;
}

/* The heading is pinned to the viewport edge so it stays readable while
   the table scrolls underneath it. */
.fm-panel--scrollx > .fm-panel-head {
    position: sticky;
    left: 0;
}

/* Column model: Season is a fixed rail; every other column takes a share of
   the width proportional to how much of the story it carries.

   Left to itself the automatic table algorithm hands spare width to whichever
   columns happen to have the widest content, which went wrong at both ends of
   the range. Wide: Season stretched to 197px while the stat block stayed at
   its em width, so the row broke into islands with a void between them.
   Narrow: Season dropped below one line and the year fell onto a second row
   under the toggle arrow, and club names folded in half.

   Percentages fix both. In an auto-layout table they act as a preferred
   share rather than a hard size — min-content still wins — so the columns
   stretch together when there is room and hold their natural widths when
   there isn't, at which point the panel scrolls. They only work while the
   table's own width is definite, which is why nothing here sets
   `width: max-content` on the table.

   The shares add up to 100% (26 club + 16 nat + 28 league + 7 fee + 5x4.6
   stat). That total is load-bearing: anything under 100% leaves a remainder,
   and the remainder lands on Season — the one column with no share — which
   is exactly the drift the fixed rail is there to prevent. Re-balance the
   shares against each other, never by lowering the total.

   The split favours the name columns because they are the ones that gain
   from width. A stat cell holds one or two digits, so past its floor extra
   width only pushes the numbers apart — hence the small stat share. */
.fm-history-table th.sq-season,
.fm-history-table td.sq-season {
    width: 100px;
    min-width: 100px;
    white-space: nowrap;
}

/* `nowrap` on the name columns is what turns their `min-width` into a real
   floor: a table never shrinks a column below its min-content width, so a
   long club or competition name overflows the panel and scrolls rather than
   folding — the behaviour the rest of the site's wide tables have.

   Centred, against the left-aligned `.fm-stats .sq-club` house rule, and the
   padding evened up so the centring is true. What is centred is the name box
   below, not the name — see `.sq-club-name`. Season, Nat and League stay
   left-aligned; Club is the one column wide enough that flush-left would
   strand the name at the far edge of its own cell. */
.fm-history-table thead th.sq-club,
.fm-history-table td.sq-club {
    width: 26%;
    padding-left: 8px;
    text-align: center;
    white-space: nowrap;
}

/* The names share a left edge while the block of them stays centred in the
   column. Centring the cell alone centres each name on its own length, so
   Bari and Fiorentina start at different offsets and the column reads
   ragged; centring a box of one fixed width instead, with the name
   left-aligned inside it, gives every row the same left edge. A name wider
   than the box just widens it and stays centred, so nothing is ever clipped.
   The width is in px, not em, because the header sets 10px against the
   body's 14px and the two edges have to line up. */
.fm-history-table .sq-club-name {
    display: inline-block;
    min-width: 148px;
    text-align: left;
}

.fm-history-table thead th.sq-nat {
    white-space: nowrap;
}

.fm-history-table thead th.sq-league {
    min-width: 168px;
}

.fm-history-table thead th.sq-fee {
    white-space: nowrap;
}

.fm-history-table th.sq-nat,
.fm-history-table td.sq-nat {
    width: 16%;
    text-align: left;
}

.fm-history-table th.sq-fee,
.fm-history-table td.sq-fee {
    width: 7%;
}

.fm-history-table td.sq-nat {
    white-space: nowrap;
}

.fm-history-table td.sq-nat .flag {
    vertical-align: middle;
    margin-right: 0.55em;
}

/* Competition names stay on one line and are never truncated — the
   column sizes itself to the longest name instead.

   Keeping it steady on toggle: the hidden breakdown rows feed their own
   `comp.label` (often a full league name) into this column, so expanding
   a season would otherwise recompute the column width and shift every
   other column. The season row carries a zero-height `.sq-league-sizer`
   copy of each of its breakdown labels, so the column is already wide
   enough for them before the first click and nothing moves. */
.fm-history-table th.sq-league,
.fm-history-table td.sq-league {
    width: 28%;
    white-space: nowrap;
    min-width: 168px;
    text-align: left;
}

/* Width-only stand-in for the breakdown labels. `visibility: hidden`
   (not `display: none`) so it still counts toward the column's intrinsic
   width; `height: 0` so it costs no vertical space. Deliberately no
   `overflow: hidden` — that would zero its min-content contribution and
   defeat the whole point. */
.fm-history-table td.sq-league .sq-league-sizer {
    display: block;
    height: 0;
    visibility: hidden;
    white-space: nowrap;
}

.fm-history-table td.sq-fee {
    font-size: 11px;
    text-align: center;
    white-space: nowrap;
}

/* The stat block stays compact: a small share on a 72px floor, which is what
   the widest label (AV RAT) needs. It grows a little with the table so the
   block doesn't detach from the columns feeding it, but nowhere near its
   share of an ultrawide screen — five one-digit cells spread over 800px read
   as five separate things rather than one row of numbers.

   The header and body cells used to declare different em widths against
   different font sizes and the larger won, giving a flat 84px. `max-width`
   was doing no work here either: the automatic table algorithm ignores it
   on cells. */
.fm-history-table th.sq-stat,
.fm-history-table td.sq-stat {
    width: 4.6%;
    min-width: 72px;
}

.fm-history-table .fm-totals-row td {
    border-top: 1px solid rgba(255, 255, 255, 0.08);
    font-weight: 600;
    color: #c0ccd6;
}

/* --- Player history per-row breakdown accordion ---
   Each season row is paired with one or more hidden breakdown rows
   (`<tr hidden>`) that reuse the main table's column structure — one
   row per competition (League / Cup / Continental Cup / Friendly).
   The whole group toggles together when the season row is clicked.
   Styling is intentionally minimal so the existing .fm-history-table
   cell widths and alignment carry the layout. */

.fm-history-row--has-breakdown {
    cursor: pointer;
}

/* Keyboard focus marker — visible only when the row is reached via
   Tab so mouse users don't see the ring. The rule has to be a touch
   specific because the codebase has several `outline: none` resets. */
.fm-history-row--has-breakdown:focus {
    outline: none;
}
.fm-history-row--has-breakdown:focus-visible {
    outline: 2px solid rgba(120, 170, 220, 0.7);
    outline-offset: -2px;
}

.fm-history-row--has-breakdown:not(.fm-history-row--expanded):hover {
    background: rgba(255, 255, 255, 0.03);
}

/* Beat the generic `.fm-stats tbody tr:hover` rule (specificity 0,2,2)
   so an expanded row's hover stays transparent — without this the tr
   gets a white-tinted bg underneath the td's dark tint and the row
   visibly grays out on hover. */
.fm-history-row--has-breakdown.fm-history-row--expanded:hover {
    background: transparent;
}

.fm-history-row-toggle {
    display: inline-block;
    width: 0;
    height: 0;
    margin-right: 6px;
    vertical-align: middle;
    border-left: 4px solid #8a939b;
    border-top: 4px solid transparent;
    border-bottom: 4px solid transparent;
    transition: transform 0.12s ease-out;
}

.fm-history-row--expanded .fm-history-row-toggle {
    transform: rotate(90deg);
}

/* Specificity-bumped (`.fm-history-table` prefix) so the 11px override
   wins over the generic `.fm-stats tbody td { font-size: 13px }`. The
   dark tint is scoped to the data columns only (League/Fee/Apps/...);
   the leading Season/Club/Nat cells stay on the table's default
   background so the breakdown reads as a continuation of the row
   rather than a fully-painted strip. */
.fm-history-table .fm-history-breakdown-row > td {
    color: #c0ccd6;
    font-size: 13px;
    border-top: 1px solid transparent;
    border-bottom: 1px solid transparent;
}

.fm-history-table .fm-history-breakdown-row > td.sq-league,
.fm-history-table .fm-history-breakdown-row > td.sq-fee,
.fm-history-table .fm-history-breakdown-row > td.sq-stat,
.fm-history-table .fm-history-row--expanded > td {
    background: rgba(0, 0, 0, 0.08);
}

.fm-history-table .fm-history-breakdown-row > td.sq-league {
    color: #e1e7ec;
    font-weight: 400;
}

/* Subtle 3px rounding on the bottom-left of the panel's last row.
   No corners on the head row — that edge butts flush against the
   main row above so the panel reads as growing out of it rather than
   sitting beside it. The bottom-left round is the only "outer"
   corner, marking the panel's natural end. */
.fm-history-table .fm-history-breakdown-row--last > td.sq-league {
    border-bottom-left-radius: 3px;
}

.fm-history-table .fm-history-breakdown-row--last > td.sq-league,
.fm-history-table .fm-history-breakdown-row--last > td.sq-fee,
.fm-history-table .fm-history-breakdown-row--last > td.sq-stat {
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

/* --- Team Stats Table --- */

.fm-team-stats {
    table-layout: fixed;
}

.fm-team-stats thead th.ts-name {
    text-align: left;
    padding-left: 14px;
    width: auto;
}

.fm-team-stats thead th.ts-col {
    width: 60px;
}

.fm-team-stats td.ts-name {
    text-align: left;
    padding-left: 14px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.fm-team-stats td.ts-name a {
    color: #d8dee4;
}

.fm-team-stats td.ts-name a:hover {
    color: #fff;
}

.fm-team-stats thead th.ts-pos {
    width: 4em;
    text-align: center;
}

.fm-team-stats td.ts-pos {
    width: 4em;
    text-align: center !important;
    color: #7a868e;
    font-size: 12px;
}

.fm-team-stats td.ts-col {
    width: 60px;
}

@media (max-width: 768px) {
    .fm-team-stats thead th.ts-col {
        width: 42px;
        padding: 8px 3px;
        font-size: 9px;
    }

    .fm-team-stats td.ts-col {
        width: 42px;
        padding: 6px 3px;
        font-size: 11px;
    }

    .fm-team-stats td.ts-name {
        padding-left: 8px;
    }
}

/* ============================================
   LEAGUE PAGE - PLAYER STATS TABLES
   ============================================ */

.fm-player-stats {
    width: 100%;
    border-collapse: collapse;
    font-variant-numeric: tabular-nums;
}

.fm-player-stats thead th {
    padding: 8px 8px;
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: #4e5e6a;
    text-align: center;
    border-bottom: 1px solid #263340;
    background: rgba(0, 0, 0, 0.08);
}

.fm-player-stats thead th.ps-name {
    text-align: left;
    padding-left: 10px;
}

.fm-player-stats thead th.ps-pos {
    width: 32px;
}

.fm-player-stats thead th.ps-apps {
    width: 44px;
}

.fm-player-stats thead th.ps-val {
    width: 44px;
}

.fm-player-stats tbody tr {
    transition: background 0.1s ease;
    border-bottom: 1px solid rgba(255, 255, 255, 0.025);
}

.fm-player-stats tbody tr:nth-child(even) {
    background: rgba(0, 0, 0, 0.1);
}

.fm-player-stats tbody tr:hover {
    background: rgba(255, 255, 255, 0.04);
}

.fm-player-stats tbody tr:first-child {
    background: rgba(74, 157, 91, 0.06);
}

.fm-player-stats tbody tr:first-child:hover {
    background: rgba(74, 157, 91, 0.1);
}

.fm-player-stats tbody td {
    padding: 6px 8px;
    font-size: 12px;
    color: #a8b6c0;
    text-align: center;
    vertical-align: middle;
}

.fm-player-stats .ps-pos {
    font-size: 11px;
    font-weight: 600;
    color: #4e5e6a;
    width: 32px;
}

.fm-player-stats tbody tr:first-child .ps-pos {
    color: #ecc030;
}

.fm-player-stats .ps-name {
    text-align: left;
    padding-left: 10px;
}

.fm-player-stats .ps-name a {
    color: #c8d4de;
    font-weight: 500;
    font-size: 12px;
    display: block;
    line-height: 1.3;
}

.fm-player-stats .ps-name a:hover {
    color: #fff;
}

.fm-player-stats .ps-team {
    display: block;
    line-height: 1.3;
}

.fm-player-stats .ps-team a {
    font-size: 10px;
    color: #4e5e6a;
    font-weight: 500;
}

.fm-player-stats .ps-team a:hover {
    color: #7a8c98;
}

.fm-player-stats .ps-apps {
    font-size: 11px;
    color: #5e6e78;
    width: 44px;
}

.fm-player-stats .ps-val {
    font-size: 13px;
    font-weight: 700;
    color: #8cc87a;
    width: 44px;
}

.fm-player-stats tbody tr:first-child .ps-val {
    color: #5cb84a;
    text-shadow: 0 0 8px rgba(92, 184, 74, 0.2);
}

/* ============================================
   COUNTRY PAGES
   ============================================ */

/* Home overview: bare info tiles (no card chrome), mirroring the
   academy overview below. The Go-on-holiday action lives as a square
   card at the end of the same tile row. */
.fm-home-overview {
    padding: 8px 0;
    margin-bottom: 10px;
}

/* Academy overview: bare info tiles (no card chrome) sitting flush
   with the players panel below. Replaces the old .fm-info-panel card. */
.fm-academy-overview {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-bottom: 14px;
}

.fm-info-grid {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr 1fr;
    gap: 8px;
}

/* Even 3-column grid for the academy header. The default
   .fm-info-grid leans on a "machine" tile in the first column;
   the academy page has no such tile, so we override to three
   equal columns. The nested override stops the responsive
   media query from collapsing each "machine" tile to its own
   row (the academy reuses the machine icon styling for every
   card, so the row-span behavior is wrong here). */
.fm-info-grid-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.fm-info-grid-3 .fm-info-tile-machine {
    grid-column: auto;
}

/* Home info row: the four stat tiles plus a trailing actions cluster
   holding the AI settings + holiday square cards. The fixed 5th track is
   two 60px buttons + the 8px gap between them; the row stretches them to
   the tile height so each button renders roughly square. */
.fm-info-grid-home {
    grid-template-columns: 2fr 1fr 1fr 1fr 128px;
    align-items: stretch;
}

/* Inline chip row used between two card groups (e.g. academy
   recruitment priorities). Sits flush with the cards visually. */
.fm-info-chips {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    padding: 6px 4px;
}

.fm-info-chips-label {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #8a9ba8;
    margin-right: 4px;
}

.fm-info-chips-label .fa {
    margin-right: 4px;
}

.fm-info-tile {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 14px;
    background: linear-gradient(160deg, #243240 0%, #1d2832 100%);
    border: 1px solid #2c3c4a;
    border-radius: 6px;
    box-shadow:
        0 1px 0 rgba(255, 255, 255, 0.04) inset,
        0 1px 3px rgba(0, 0, 0, 0.18);
    transition:
        border-color 0.2s,
        transform 0.15s,
        box-shadow 0.2s;
    min-width: 0;
}

.fm-info-tile:hover {
    border-color: #3a5468;
    transform: translateY(-1px);
    box-shadow:
        0 1px 0 rgba(255, 255, 255, 0.06) inset,
        0 4px 10px rgba(0, 0, 0, 0.25);
}

.fm-info-tile-icon {
    width: 38px;
    height: 38px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 7px;
    font-size: 15px;
    flex: 0 0 38px;
    box-shadow:
        0 1px 0 rgba(255, 255, 255, 0.08) inset,
        0 1px 3px rgba(0, 0, 0, 0.25);
}

.fm-info-tile-countries .fm-info-tile-icon,
.fm-info-tile-clubs .fm-info-tile-icon,
.fm-info-tile-players .fm-info-tile-icon,
.fm-info-tile-machine .fm-info-tile-icon {
    background: linear-gradient(160deg, #2a3a48 0%, #22303c 100%);
    border: 1px solid #38485a;
    color: #88a4b8;
}

.fm-info-tile-body {
    display: flex;
    flex-direction: column;
    line-height: 1;
    min-width: 0;
}

.fm-info-tile-value {
    font-size: 20px;
    font-weight: 700;
    color: #ffffff;
    font-variant-numeric: tabular-nums;
    letter-spacing: -0.4px;
    line-height: 1.05;
}

.fm-info-tile-label {
    margin-top: 5px;
    font-size: 10.5px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.9px;
    color: #6c8290;
}

.fm-info-machine-value {
    font-size: 16px;
    font-weight: 700;
    color: #ffffff;
    line-height: 1.1;
    letter-spacing: -0.2px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Workers chip — sits at the right edge of the Machine tile, links
   to the dedicated workers page. Hidden when no workers are
   configured (template-side `{% if workers_count > 0 %}`). The count
   is the prominent green readout. */
.fm-workers-chip {
    margin-left: auto;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 12px;
    background: linear-gradient(160deg, #006462b8 0%, #07393a 100%);
    border: 1px solid #1d6660;
    border-radius: 6px;
    text-decoration: none;
    transition:
        border-color 0.15s,
        transform 0.15s,
        box-shadow 0.2s;
    box-shadow:
        0 1px 0 rgba(255, 255, 255, 0.06) inset,
        0 1px 3px rgba(0, 0, 0, 0.25);
}

.fm-workers-chip:hover {
    transform: translateY(-1px);
    box-shadow:
        0 1px 0 rgba(255, 255, 255, 0.08) inset,
        0 4px 10px rgba(0, 0, 0, 0.3);
}

.fm-workers-chip-count {
    font-size: 18px;
    font-weight: 700;
    color: #01b6a4;
    font-variant-numeric: tabular-nums;
    line-height: 1;
    letter-spacing: -0.3px;
    margin-right: 4px;
}

.fm-workers-chip-stack {
    display: inline-flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
    line-height: 1;
}

.fm-workers-chip-sublabel {
    font-size: 8.5px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.9px;
    color: #6c8290;
    line-height: 1;
}

.fm-workers-chip-label {
    font-size: 10.5px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.9px;
    color: #6c8290;
    line-height: 1;
}

/* Shared AI accent — the home badge and the squad-page AI report button
   read the same colors so they always match. Restyle both in one place. */
:root {
        --fm-ai-bg: linear-gradient(159deg, #1280a3 0%, #15466e 100%);
        --fm-ai-border: #1b607e;
    --fm-ai-border-hover: #356aad;
}

/* Trailing actions cluster — the AI settings + holiday square cards ride
   together as the last item in the home info row. One grid cell holding
   two equal buttons keeps them paired at every breakpoint (side by side
   beside the Players tile once the row wraps on phones). The grid row
   stretches this to tile height; the flex children fill it. */
.fm-home-actions {
    display: flex;
    gap: 8px;
    align-items: stretch;
    min-width: 0;
}

.fm-home-actions .fm-ai-btn,
.fm-home-actions .fm-holiday-btn {
    flex: 1 1 0;
    min-width: 0;
}

/* AI settings action — square card twin to the holiday button. The robot
   icon is always shown; the corner dot and blue accent light up when a
   model is configured (fm-ai-btn-on), otherwise the card stays grey. The
   label is visually hidden (read by the tooltip / screen readers) so the
   card reads as a clean icon button. Clicking opens the AI dialog. */
.fm-ai-btn {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    padding: 6px;
    color: #88a4b8;
    background: linear-gradient(160deg, #243240 0%, #1d2832 100%);
    border: 1px solid #2c3c4a;
    border-radius: 6px;
    box-shadow:
        0 1px 0 rgba(255, 255, 255, 0.06) inset,
        0 1px 3px rgba(0, 0, 0, 0.25);
    cursor: pointer;
    transition:
        border-color 0.2s,
        transform 0.15s,
        box-shadow 0.2s,
        color 0.2s,
        background 0.2s;
}

.fm-ai-btn:hover {
    border-color: #3a5468;
    color: #ffffff;
    transform: translateY(-1px);
    box-shadow:
        0 1px 0 rgba(255, 255, 255, 0.08) inset,
        0 4px 10px rgba(0, 0, 0, 0.3);
}

.fm-ai-btn:active {
    transform: translateY(0);
    transition-duration: 0.08s;
}

.fm-ai-btn:focus-visible {
    outline: 2px solid var(--fm-ai-border-hover);
    outline-offset: 2px;
}

.fm-ai-btn-ic {
    font-size: 18px;
    line-height: 1;
}

.fm-ai-btn-label {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* Connection status pip — dim by default (OFF), lit green when a model
   is configured (ON). The one readout that says whether AI is live. */
.fm-ai-btn-dot {
    position: absolute;
    top: 6px;
    right: 6px;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #47586a;
    box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.25);
    transition:
        background 0.2s,
        box-shadow 0.2s;
}

/* Configured — blue AI accent, robot lit, status pip glows green. */
.fm-ai-btn.fm-ai-btn-on {
    color: #eae7ff;
    background: var(--fm-ai-bg);
    border-color: var(--fm-ai-border);
}

.fm-ai-btn.fm-ai-btn-on:hover {
    color: #ffffff;
    border-color: var(--fm-ai-border-hover);
}

.fm-ai-btn.fm-ai-btn-on .fm-ai-btn-dot {
    background: #4ade80;
    box-shadow: 0 0 6px rgba(74, 222, 128, 0.7);
}

/* Groups the workers chip + AI badge. `display: contents` makes the
   wrapper invisible to layout, so on wide screens both pills stay direct
   flex items of the machine tile (chip keeps its margin-left:auto and the
   two ride side by side, right-aligned). The phones breakpoint promotes
   this to a real flex column — see the max-width: 480px block. */
.fm-machine-actions {
    display: contents;
}

/* AI settings dialog — reuses the worker-dialog shell, but stacks its
   three fields (Base URL / Model / API Key) full-width instead of the
   worker dialog's host+port row, and widens a touch for long model ids. */
.fm-ai-dialog {
    width: min(480px, calc(100vw - 32px));
}

.fm-ai-dialog-body {
    flex-direction: column;
}

/* Tablets and small laptops — Machine claims its own full-width row
   so the long CPU brand string never gets clipped. iPad mini portrait
   (768px) and landscape (1024px) both hit this band. */
@media (max-width: 1100px) {
    .fm-info-grid {
        grid-template-columns: repeat(3, 1fr);
    }
    .fm-info-tile-machine {
        grid-column: 1 / -1;
    }
    /* Machine takes its own row; the three stat tiles plus the trailing
       actions cluster (AI + holiday) fill the row below. */
    .fm-info-grid-home {
        grid-template-columns: repeat(3, 1fr) 128px;
    }
}

/* Phones — Machine spans full width on its own row; Countries/Clubs/
   Players share one row of three with shrunken icons so icon+text still
   fit horizontally inside the narrow columns. */
@media (max-width: 480px) {
    .fm-info-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 6px;
    }
    .fm-info-tile-machine {
        grid-column: 1 / -1;
    }
    /* Pair the tiles 2×2 so the actions cluster rides alongside the
       Players tile instead of wrapping to a lonely centred row of its own.
       Machine keeps its own full-width row above (its long CPU string is
       never clipped); Countries/Clubs and Players/Actions pair up below. */
    .fm-info-grid-home {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    /* The actions cluster now shares a half-width cell (the AI + holiday
       buttons sit side by side), so nudge their icons up a touch to give
       the pair presence beside the content-filled Players tile. */
    .fm-info-grid-home .fm-holiday-ic,
    .fm-info-grid-home .fm-ai-btn-ic {
        font-size: 20px;
    }
    .fm-info-tile {
        gap: 8px;
        padding: 8px 9px;
    }
    .fm-info-tile-icon {
        width: 26px;
        height: 26px;
        flex: 0 0 26px;
        font-size: 11px;
        border-radius: 5px;
    }
    .fm-info-tile-machine {
        gap: 10px;
        padding: 10px;
    }
    .fm-info-tile-machine .fm-info-tile-icon {
        width: 30px;
        height: 30px;
        flex: 0 0 30px;
        font-size: 12px;
    }
    .fm-info-tile-value {
        font-size: 15px;
    }
    .fm-info-tile-label {
        margin-top: 3px;
        font-size: 9px;
        letter-spacing: 0.6px;
    }
    .fm-info-machine-value {
        font-size: 13px;
        white-space: normal;
    }
}

.fm-download-btn {
    display: none;
    align-items: center;
    align-self: center;
    gap: 6px;
    height: 30px;
    margin-right: 2em;
    padding: 0 14px;
    font-size: 10.5px;
    font-weight: 600;
    letter-spacing: 0.8px;
    text-transform: uppercase;
    text-decoration: none;
    color: #fff;
    background: linear-gradient(160deg, #0b686b 0%, #055455 100%);
    border: 1px solid #145d59e0;
    border-radius: 6px;
    white-space: nowrap;
    box-shadow:
        0 1px 0 rgba(255, 255, 255, 0.15) inset,
        0 1px 3px rgba(50, 140, 120, 0.25);
    transition:
        color 0.25s,
        background 0.3s,
        border-color 0.3s,
        box-shadow 0.35s,
        transform 0.25s;
    position: relative;
}

.fm-download-btn i {
    font-size: 10px;
    opacity: 0.8;
    transition:
        opacity 0.25s,
        transform 0.3s;
}

.fm-download-btn:hover {
    color: #fff;
    background: linear-gradient(160deg, #0b686b 0%, #055455 100%);
    border-color: #5cd4b6;
    box-shadow:
        0 1px 0 rgba(255, 255, 255, 0.18) inset,
        0 0 10px rgba(65, 190, 160, 0.3),
        0 2px 8px rgba(50, 140, 120, 0.3);
    transform: translateY(-1px);
}

.fm-download-btn:hover i {
    opacity: 1;
    transform: translateY(-0.5px);
}

.fm-download-btn:active {
    transform: translateY(0);
    background: linear-gradient(160deg, #0b686b 0%, #055455 100%);
    box-shadow:
        0 1px 2px rgba(0, 0, 0, 0.15) inset,
        0 1px 2px rgba(50, 140, 120, 0.2);
    transition-duration: 0.08s;
}

@media (min-width: 1200px) {
    .fm-download-btn {
        display: inline-flex;
    }
}

/* Holiday action — square card sitting at the end of the home info
   row. Idle shows the beach icon (start a holiday); while away it
   flips to a briefcase ("return to work"); cancelling shows a spinner.
   The label is kept for screen readers / the toggle JS but visually
   hidden, so the card reads as a clean icon button. */
.fm-holiday-btn {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    padding: 6px;
    color: #88a4b8;
    background: linear-gradient(160deg, #243240 0%, #1d2832 100%);
    border: 1px solid #2c3c4a;
    border-radius: 6px;
    box-shadow:
        0 1px 0 rgba(255, 255, 255, 0.06) inset,
        0 1px 3px rgba(0, 0, 0, 0.25);
    cursor: pointer;
    transition:
        border-color 0.2s,
        transform 0.15s,
        box-shadow 0.2s,
        color 0.2s,
        background 0.2s;
}

.fm-holiday-btn:hover {
    border-color: #3a5468;
    color: #ffffff;
    transform: translateY(-1px);
    box-shadow:
        0 1px 0 rgba(255, 255, 255, 0.08) inset,
        0 4px 10px rgba(0, 0, 0, 0.3);
}

.fm-holiday-btn:active {
    transform: translateY(0);
    transition-duration: 0.08s;
}

.fm-holiday-ic {
    font-size: 18px;
    line-height: 1;
}

.fm-holiday-ic-back {
    display: none;
}

.fm-holiday-label {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.fm-holiday-spinner {
    display: none;
    align-items: center;
    justify-content: center;
}

.fm-holiday-spinner .spinner {
    width: 16px;
    height: 16px;
    border-top-color: #e8c46a;
}

/* On holiday — amber treatment, briefcase ("return to work"). */
.fm-holiday-btn.fm-holiday-active {
    color: #e8c46a;
    background: linear-gradient(160deg, #3a3225 0%, #2e2820 100%);
    border-color: #5c4a2e;
}

.fm-holiday-btn.fm-holiday-active:hover {
    color: #f0d080;
    border-color: #6e5a3a;
    background: linear-gradient(160deg, #4a4030 0%, #3a3225 100%);
}

.fm-holiday-btn.fm-holiday-active .fm-holiday-ic-go {
    display: none;
}

.fm-holiday-btn.fm-holiday-active .fm-holiday-ic-back {
    display: inline-block;
}

/* Cancelling — spinner replaces the icon. */
.fm-holiday-btn.fm-holiday-cancelling .fm-holiday-ic {
    display: none;
}

.fm-holiday-btn.fm-holiday-cancelling .fm-holiday-spinner {
    display: flex;
}

.fm-country-grid {
    columns: 4;
    column-gap: 0;
    padding: 10px;
}

@media (max-width: 768px) {
    .fm-country-grid {
        columns: 2;
    }
}

.fm-country-item {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 14px;
    color: #b0bac2;
    font-size: 16px;
    font-weight: 400;
    break-inside: avoid;
    transition:
        background 0.1s,
        color 0.1s;
    border-radius: 3px;
}

.fm-league-list {
    padding: 0;
}

/* Grouped competitions on the country page (Primera Division zones,
   MLS conferences): a small heading above each competition's leagues
   and playoff links. */
.fm-league-group-hd {
    padding: 12px 14px 6px;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.9px;
    text-transform: uppercase;
    color: #5d6a74;
    border-bottom: 1px solid rgba(255, 255, 255, 0.055);
}

.fm-league-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 14px;
    color: #d8dee4;
    font-size: 16px;
    font-weight: 400;
    border-bottom: 1px solid rgba(255, 255, 255, 0.025);
    transition: background 0.1s;
}

.fm-league-item:hover {
    background: rgba(255, 255, 255, 0.03);
    color: #fff;
}

.fm-league-item i {
    color: #4a9d5b;
    font-size: 13px;
    width: 18px;
    text-align: center;
}

/* ============================================
   MATCH PAGE
   ============================================ */

/* The stage is the page: it starts directly under the header and takes the
   full width of its column. What air the page has is spent below the canvas,
   on the controls legend, rather than above it. */
.fm-match-page {
    padding: 0 !important;
}

/* --- Match header scoreboard ---
   The match page has no title of its own: this takes the place of
   `.fm-header-title`, so the competition, the result and the man of the match
   all ride in the app header and the replay stage starts directly under it.
   It replaced a separate dark band below the header that cost ~220px of page
   before the stage even began — and the stage is the point of the page.
   Its height is not fixed (scorers stack under the club names), so the page
   MEASURES it into `--match-chrome` rather than assuming a number. */

.fm-header-scoreboard {
    /* The rails are fractions of the header, not their own content: two equal
       rails are what holds the score on the centre line whatever the
       competition is called. Content-sized rails also measure the middle by
       its MIN-content — a nested flex container reports its children's text
       width, not the basis they were given — which squeezes the result down
       to one scorer per line and hands the slack to the small caps. */
    display: flex;
    flex: 1;
    /* Only ever used by the narrow layouts, where the two rails drop below
       the result onto a second line. The row gap is theirs; the 16px column
       gap is what separates the three rails on one line. */
    flex-wrap: wrap;
    align-items: center;
    gap: 4px 16px;
    min-width: 0;
    padding: 8px 16px 8px 0;
    /* What every rule in the responsive section further down measures itself
       against — see the note there for why the window is the wrong ruler. */
    container-type: inline-size;
    container-name: scoreboard;
}

/* Left rail: which competition, and that the match is over. Both lines are
   held to one line each — a rail that wraps deepens the header, and the
   header's depth is the stage's size. */

.fm-sb-meta {
    display: flex;
    flex: 0 0 18%;
    flex-direction: column;
    gap: 1px;
    min-width: 0;
}


.fm-sb-league,
.fm-sb-ft {
    font-weight: 600;
    text-transform: uppercase;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.fm-sb-league {
    font-size: 10px;
    letter-spacing: 1.2px;
    color: #6b7580;
    transition: color 0.12s;
}

.fm-sb-league:hover {
    color: #0d6efd;
}

.fm-sb-ft {
    font-size: 9px;
    letter-spacing: 1px;
    color: #9aa4ad;
}

/* Baseline, not centre: the digits sit on the same line as the club names, so
   the score reads as part of the result rather than as a graphic beside it.
   The scorers hang below both. */
.fm-sb-main {
    display: flex;
    flex: 1 1 0;
    align-items: baseline;
    justify-content: center;
    gap: 0;
    min-width: 0;
    /* Nudge right, so the score lands on the PAGE's centre line rather than
       the scoreboard's — the replay below it is page-centred, and the two
       reading straight down from one another is the point of putting the
       result up here. The scoreboard sits off-centre because the menu button
       and the header actions take the ends of the header, and this margin
       moves the middle by half of itself, so twice the offset lands it. That
       offset is a measurement the stylesheet cannot take — it moves with the
       locale, the sidebar and the date — so the page writes it into
       `--fm-sb-shift` already doubled.
       Spent only out of width the result does not need: 64% is what is left
       of the header once the two 18% rails are taken, and 560px is the floor
       under the result itself, so the nudge can never ellipse the club names
       to "Arse…" to buy centring. Between the two it takes what there is, and
       the result glides onto the centre line as the window widens rather than
       jumping there. */
    margin-left: min(var(--fm-sb-shift, 0px), max(0px, 64% - 560px));
}

/* Equal halves of what the score leaves, so four scorers on one side and none
   on the other still hang the digits on the centre line. */
.fm-sb-team {
    flex: 1 1 0;
    min-width: 0;
}

.fm-sb-team-home {
    text-align: right;
    padding-right: 18px;
}

.fm-sb-team-away {
    text-align: left;
    padding-left: 18px;
}

.fm-sb-team-name {
    display: block;
    font-size: 17px;
    font-weight: 700;
    color: #1e272d;
    letter-spacing: -0.2px;
    line-height: 1.15;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    transition: color 0.15s;
}

.fm-sb-team-name:hover {
    color: #0d6efd;
}

/* Scorers stack under the club name, newest at the bottom, and read outward
   from the score: right-aligned on the home side, left on the away. Two rows
   show by default; the expander lifts the lid on the rest. */

.fm-sb-goals {
    display: flex;
    flex-direction: column;
    gap: 1px;
    margin-top: 3px;
    /* Two 15px rows plus room for a descender, and short of the 47px a third
       row would need. */
    max-height: 35px;
    overflow: hidden;
    transition: max-height 0.35s ease;
}

.fm-sb-goals.fm-sb-goals-expanded {
    max-height: none;
}

.fm-sb-team-home .fm-sb-goals {
    align-items: flex-end;
}

.fm-sb-team-away .fm-sb-goals {
    align-items: flex-start;
}

.fm-sb-goal {
    display: block;
    /* Never shrink: these are flex items in a column with a capped height, so
       the default would squeeze six scorers into the two rows' worth of space
       and clip every one of them through the middle rather than hiding the
       rows that do not fit. */
    flex: 0 0 auto;
    font-size: 11px;
    line-height: 15px;
    color: #6b7580;
    font-weight: 400;
    white-space: nowrap;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    transition: color 0.12s;
}

.fm-sb-goal:hover {
    color: #0d6efd;
}

.fm-sb-expander {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 15px;
    margin-top: 2px;
    padding: 0 6px;
    border: 1px solid #dfe3e7;
    border-radius: 8px;
    background: #f3f5f7;
    cursor: pointer;
    font-size: 10px;
    line-height: 1;
    font-weight: 600;
    color: #8a939c;
    transition:
        color 0.15s,
        background 0.15s,
        border-color 0.15s;
}

.fm-sb-expander:hover {
    color: #47535d;
    background: #e9edf1;
    border-color: #cdd4da;
}

.fm-sb-team-home .fm-sb-expander {
    float: right;
}

.fm-sb-score {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-shrink: 0;
    padding: 0 2px;
}

.fm-sb-digit {
    font-size: 30px;
    font-weight: 700;
    color: #1e272d;
    line-height: 1;
    min-width: 24px;
    text-align: center;
    letter-spacing: -1.2px;
    font-variant-numeric: tabular-nums;
}

.fm-sb-sep {
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: #c3cad1;
    flex-shrink: 0;
    /* Baseline-aligned like its siblings, so it needs lifting to the middle of
       the digits rather than sitting on their baseline. */
    align-self: center;
}

/* Right rail: the one award the page carries, set against the left rail so
   the score keeps the middle to itself. Rendered even with no man of the
   match to name — an empty rail is what balances the left one, and without it
   the score sits off-centre on every goalless draw. */

.fm-sb-motm {
    display: flex;
    flex: 0 0 18%;
    flex-direction: column;
    align-items: flex-end;
    gap: 1px;
    min-width: 0;
    text-align: right;
}

.fm-motm-star {
    /* Darker than the gold used on the squad lists: that one sits on a near
       black panel, this one on white. */
    color: #d99e00;
    font-size: 11px;
    margin-right: 4px;
}

.fm-motm-label {
    font-size: 9px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: #8a939c;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 100%;
}

.fm-motm-name {
    font-size: 12px;
    font-weight: 600;
    color: #1e272d;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 100%;
    transition: color 0.15s;
}

.fm-motm-name:hover {
    color: #0d6efd;
}

.fm-motm-badge {
    color: #f5c518;
    font-size: 10px;
    margin-left: 3px;
}

.fm-squad-player-motm {
    background: rgba(245, 197, 24, 0.08) !important;
}

/* --- Scoreboard Responsive ---

   The scoreboard answers to its OWN width rather than the window's. What it
   gets is the header less the menu button and the header actions, and those
   are worth 210px on a phone and 290px on a laptop — so a 1280 window with
   the sidebar docked hands the scoreboard LESS room than a 1199 one without
   it. A viewport breakpoint cannot see that, and picked the wrong layout at
   both ends: club names read in full at 768px and came out as "Manch…" at
   820px, the page getting worse as the window got wider. `container-type`
   below lets these rules read the width the scoreboard actually got.

   What gives up the line does so in the order it matters: the man of the
   match and the competition go first, the result keeps it to the last. The
   old fixed 18% rails had that backwards — they held width for the two
   smallest items on the header while the club names ellipsed to pay. */

/* One line costs about 900px: 560px of result between two rails wide enough
   to spell out a competition and "player of the match". Under that the rails
   stop competing with the result and drop below it as a caption — the result
   is what a match header is for, so on a narrow header it reads first and
   takes the whole line, and the small type reads as its caption. Two rows,
   not three: the competition and the award share the second one. */

@container scoreboard (max-width: 899px) {
    .fm-sb-main {
        order: 1;
        flex: 1 1 100%;
        /* Same page-centring nudge as the wide layout, and spent out of the
           same 560px floor under the result — the whole line here, rather
           than the 64% the rails leave there. Anything less and the nudge
           starts buying centring with the club names: at a 669px scoreboard
           a 440px floor left "Borussia Moncheng…" against a score that was
           still 60px short of the centre line. */
        margin-left: min(var(--fm-sb-shift, 0px), max(0px, 100% - 560px));
    }

    /* Wrap rather than ellipse. Which club it is, is the one thing on this
       page nothing else can tell you — "Borussia Moncheng…" against
       "Borussia Monchengla…" is not a distinction a reader can make — so a
       long name takes a second line and the header grows by 20px, which on
       every window that is not also short costs the replay nothing. Names
       that fit still sit on one line, so this is paid for only where it is
       needed. */
    .fm-sb-team-name {
        white-space: normal;
    }

    .fm-sb-meta,
    .fm-sb-motm {
        flex: 0 1 auto;
        flex-direction: row;
        align-items: baseline;
        gap: 8px;
        max-width: 100%;
        text-align: left;
    }

    /* Competition to the outside edge, award to the other, so the caption
       brackets the result rather than huddling under one half of it. */
    .fm-sb-meta {
        order: 2;
        margin-right: auto;
    }

    .fm-sb-motm {
        order: 3;
    }
}

/* Under ~440px a club name is on two lines more often than not, so the type
   steps down to keep those two lines from being three. */

@container scoreboard (max-width: 439px) {
    .fm-sb-team-name {
        font-size: 14px;
    }

    .fm-sb-team-home {
        padding-right: 10px;
    }

    .fm-sb-team-away {
        padding-left: 10px;
    }

    .fm-sb-digit {
        font-size: 24px;
        min-width: 20px;
    }

    /* Nothing spare to spend on centring at this width. */
    .fm-sb-main {
        margin-left: 0;
    }
}

/* The narrowest phones still in use. Everything between the two club names is
   pulled in as tight as it reads, because the width they leave has to hold
   the longest single word a club name can be — nothing wraps "Monchengladbach"
   and the alternative to the room is clipping it. */

@container scoreboard (max-width: 359px) {
    .fm-sb-team-name {
        font-size: 13px;
    }

    .fm-sb-team-home {
        padding-right: 4px;
    }

    .fm-sb-team-away {
        padding-left: 4px;
    }

    .fm-sb-score {
        gap: 5px;
        padding: 0;
    }

    .fm-sb-digit {
        font-size: 21px;
        min-width: 15px;
    }

    .fm-sb-league {
        letter-spacing: 1px;
    }
}

/* Below xl: the scoreboard takes a line of its own.

   The same breakpoint the sidebar undocks at, and for the same reason — this
   is where the window stops having room for the app's chrome and its content
   side by side. Sharing the line costs the scoreboard the 210px of actions a
   phone header carries and the 290px a laptop one does, and it was paying in
   both of the things the header is for: at 414px the clubs read "M… U…", and
   at 900px the score sat 129px to the left of the stage it is supposed to
   read straight down into.

   A row of its own costs the header ~40px, which is free on all but a short
   window: below xl the replay stage is bounded by the column width rather
   than by what the header leaves of the viewport, so a deeper header takes
   nothing off it. It also lands the score on the page's centre line without
   any nudge at all, the scoreboard now being centred itself.

   Scoped to the match page, which is the only header whose title is a
   layout — everywhere else the title is one line that fits beside the
   actions. */

@media (max-width: 1199.98px) {
    .fm-header:has(.fm-header-scoreboard) {
        flex-wrap: wrap;
    }

    .fm-header:has(.fm-header-scoreboard) .fm-header-scoreboard {
        /* After the menu button and the actions, which keep the first row. */
        order: 2;
        flex: 1 0 100%;
        padding: 8px 16px 10px;
        border-top: 1px solid #eef0f2;
    }
}

/* --- Mobile Squads (below match area) --- */

.fm-match-squads-mobile {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0;
    border-top: 1px solid rgba(255, 255, 255, 0.06);
    margin-top: 8px;
}

.fm-match-squads-mobile .fm-match-squad-away {
    border-left: 1px solid rgba(255, 255, 255, 0.06);
}

@media (max-width: 480px) {
    .fm-match-squads-mobile {
        grid-template-columns: 1fr;
    }

    .fm-match-squads-mobile .fm-match-squad-away {
        border-left: none;
        border-top: 1px solid rgba(255, 255, 255, 0.06);
    }
}

/* --- Squad Panels --- */

.fm-match-squad {
    padding: 0;
    margin-top: 8px;
}

.fm-squad-hdr {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 12px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.fm-squad-hdr-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    flex-shrink: 0;
}

.fm-squad-hdr-dot-home {
    background: #3d7aed;
}

.fm-squad-hdr-dot-away {
    background: #e05a2b;
}

.fm-squad-title {
    font-size: 13px;
    font-weight: 700;
    color: #d8dee4;
    letter-spacing: -0.2px;
}

.fm-squad-title:hover {
    color: #fff;
}

.fm-squad-section {
    padding: 4px 0;
}

.fm-squad-player {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 3px 12px;
    font-size: 12px;
    color: #8a949c;
    transition: all 0.12s;
}

.fm-squad-player:hover {
    color: #d8dee4;
    background: rgba(255, 255, 255, 0.03);
}

.fm-squad-player small {
    color: #4a5560;
    font-size: 10px;
    font-weight: 600;
    min-width: 26px;
    text-align: center;
    flex-shrink: 0;
}

.fm-sp-name {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fm-sub-badge {
    font-size: 9px;
    font-weight: 700;
    padding: 1px 5px;
    border-radius: 3px;
    flex-shrink: 0;
    letter-spacing: 0.2px;
}

.fm-sub-badge i {
    font-size: 8px;
    margin-right: 2px;
}

.fm-sub-in {
    color: #4caf50;
    background: rgba(76, 175, 80, 0.12);
}

.fm-sub-out {
    color: #f44336;
    background: rgba(244, 67, 54, 0.12);
}

.fm-rating-badge {
    font-size: 10px;
    font-weight: 700;
    padding: 1px 5px;
    border-radius: 3px;
    flex-shrink: 0;
    letter-spacing: 0.2px;
}

.fm-rating-low {
    color: #f44336;
    background: rgba(244, 67, 54, 0.14);
}

.fm-rating-mid {
    color: #00bcd4;
    background: rgba(0, 188, 212, 0.14);
}

.fm-rating-good {
    color: #4caf50;
    background: rgba(76, 175, 80, 0.14);
}

.fm-rating-great {
    color: #00c853;
    background: rgba(0, 200, 83, 0.14);
}

.fm-match-squad-home .fm-squad-player {
    flex-direction: row;
}

.fm-match-squad-away .fm-squad-player {
    flex-direction: row;
}

.fm-squad-player-bench {
    opacity: 0.35;
}

.fm-squad-player-subbed {
    opacity: 0.9;
}

.fm-squad-player-off {
    opacity: 0.45;
}

.fm-squad-divider {
    padding: 5px 12px;
    font-size: 9px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.8px;
    color: rgba(255, 255, 255, 0.2);
    border-top: 1px solid rgba(255, 255, 255, 0.05);
    margin: 4px 0 2px;
}

/* ============================================
   MATCH - WEBASSEMBLY VIEWER STAGE
   ============================================ */

#match-play-area {
    width: 100%;
    /* Everything above the stage on this page — which since the scoreboard
       moved into it is just the app header. The header carries the scorers,
       so its height moves with the result (68px goalless, ~95px with three
       stacked under a club name); the page overwrites this variable with the
       measured height on load and on resize. This value is the fallback for
       a page whose script has not run: the tall end, because too large only
       costs the stage some width on a short window, where too small puts the
       far touchline under the fold. */
    --match-chrome: 100px;
    /* And the one thing between the header and the stage: the controls legend,
       a 20px line inside 5px of padding inside 5px of margin, top and bottom
       — 40px of page the stage does not get. The
       stage's height budget gives way to this as well as to the header, or
       the far touchline goes under the fold by exactly this much. Unlike the
       header it cannot change with the fixture, so it is a constant rather
       than a measurement. Only binds on a window short enough for height to
       decide the width — below xl the column is narrower than the height
       allows, `min()` takes 100%, and the legend may wrap there for free. */
    --match-hints: 40px;
}

/* The viewer's canvas resizes itself to this box, so the box is what pins the
   aspect ratio. The loading state sits OVER the canvas and is taken off by
   script when the viewer says there is football to watch — see
   `.match-loader`, and `src/match/src/bringup.rs` for what it is waiting on.
   The whole pitch has to be on screen when the page opens, so the stage gives
   up width before it gives up being wholly above the fold: the column width is
   only its upper bound, and what is left of the viewport under the chrome sets
   the rest. `min()` keeps 16/9 intact by driving the width — clamping the
   height instead would letterbox the replay inside its own box. */
.match-stage {
    position: relative;
    width: min(100%, max(420px, (100vh - var(--match-chrome) - var(--match-hints, 0px)) * 16 / 9));
    width: min(100%, max(420px, (100dvh - var(--match-chrome) - var(--match-hints, 0px)) * 16 / 9));
    margin: 0 auto;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    border-radius: 6px;
    background: #080c12;
}

/* The vignette, which until now the loading state was the only thing wearing.

   It belongs to the STAGE rather than to the loader. The loader's own radial
   ground is what puts weight in the corners while the wasm is coming down, and
   it takes that with it when it fades — and then removes itself from the DOM
   entirely — so the frame the eye had been reading around the picture went
   with it at the exact moment there was finally a picture to frame. Kept here,
   the edges stay soft afterwards and the replay settles INTO its box instead
   of being cut off square at the border.

   An inset shadow rather than a radial gradient, which is the difference
   between a border and a lens: a radial follows an ellipse, so it is at its
   heaviest in the corners and has already let go by the middle of each edge. A
   shadow follows the rounded rectangle itself, so the band is the same depth
   the whole way round — which is what "the edges are smoothed out" asks for.
   Two stops rather than one: a firm rim right at the border and a wider,
   fainter skirt behind it, so the falloff has no visible end to it. Between
   them they reach about sixty pixels in, which is the size this was settled at
   by eye — far enough to read as a frame, short of both the play and the
   controls on the viewer's own transport bar along the bottom, which sit clear
   of the band with only their dark slab in it.

   Painted over the canvas but under the fullscreen button (z-index 3), and it
   never takes the pointer: every drag in this box is a camera control. */
.match-stage::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 2;
    pointer-events: none;
    /* Matched to the stage, or the shadow squares off the corners the box has
       rounded. */
    border-radius: inherit;
    box-shadow:
        inset 0 0 18px 1px rgba(4, 7, 11, 0.75),
        inset 0 0 50px 8px rgba(4, 7, 11, 0.45);
}

/* The loading state, drawn OVER the canvas.

   It has to be over it rather than behind it because the viewer starts drawing
   long before there is anything to watch: the first frame lands with an empty
   pitch and the stadium is not finished for several more, so a placeholder
   that relied on being painted over would vanish at the least useful moment.

   ⚠ Everything that MOVES in here moves by transform or opacity, and that is
   load-bearing rather than tidy. Linking one of Bevy's PBR shaders blocks the
   main thread for about four seconds (see `src/match/src/bringup.rs`), and an
   animation the compositor owns is the only kind that keeps running through
   that — anything driven by layout or by script simply stops, which is what
   made the old spinner read as a hung page. */
.match-loader {
    position: absolute;
    inset: 0;
    z-index: 2;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 14px;
    padding: 0 24px;
    color: #8a9bb5;
    font-size: 13px;
    text-align: center;
    /* Not flat black: the stage's own ground with a little lift, so the fade
       at the end reveals the pitch rather than brightening into it. */
    background: radial-gradient(circle at 50% 45%, #101823 0%, #080c12 70%);
    opacity: 1;
    transition: opacity 0.35s ease;
}

.match-loader-gone {
    opacity: 0;
    pointer-events: none;
}

/* The stadium is built and only the recording is outstanding — which for a
   match that is still being simulated can be minutes, since the viewer keeps
   asking until the chunks exist. There is a ground to look at by then, so the
   cover comes off and what is left is a status line along the bottom that
   does not take the pointer: the camera works, the replay just has nothing in
   it yet. */
.match-loader-clear {
    justify-content: flex-end;
    gap: 8px;
    padding-bottom: 16px;
    pointer-events: none;
    background: linear-gradient(
        to top,
        rgba(8, 12, 18, 0.88) 0%,
        rgba(8, 12, 18, 0.55) 26%,
        rgba(8, 12, 18, 0) 52%
    );
}

.match-loader-clear .match-loader-ring {
    width: 18px;
    height: 18px;
    border-width: 2px;
}

.match-loader-clear .match-loader-note {
    display: none;
}

/* One ring turning at a constant rate. It says nothing about progress — the
   bar below does that — and is here purely so the frame is never still. */
.match-loader-ring {
    width: 34px;
    height: 34px;
    border-radius: 50%;
    border: 2px solid rgba(255, 255, 255, 0.12);
    border-top-color: #4a9eff;
    will-change: transform;
    animation: match-loader-spin 0.9s linear infinite;
}

@keyframes match-loader-spin {
    to {
        transform: rotate(360deg);
    }
}

.match-loader-phase {
    margin: 0;
    color: #c6d3e4;
    font-size: 14px;
}

.match-loader-track {
    position: relative;
    width: min(280px, 60%);
    height: 4px;
    border-radius: 2px;
    overflow: hidden;
    background: rgba(255, 255, 255, 0.08);
}

/* The bar's width is written from script, so it does NOT move during a stall.
   It steps between them, which is the truth about a shader link: nothing is
   known about how far along it is until it is over. The sweep inside it is
   what covers the stall. */
.match-loader-fill {
    position: relative;
    width: 0;
    height: 100%;
    border-radius: 2px;
    background: #4a9eff;
    transition: width 0.3s ease;
    overflow: hidden;
}

.match-loader-fill::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(
        90deg,
        rgba(255, 255, 255, 0) 0%,
        rgba(255, 255, 255, 0.45) 50%,
        rgba(255, 255, 255, 0) 100%
    );
    will-change: transform;
    animation: match-loader-sweep 1.1s linear infinite;
}

@keyframes match-loader-sweep {
    from {
        transform: translateX(-100%);
    }
    to {
        transform: translateX(100%);
    }
}

.match-loader-note {
    max-width: 34em;
    margin: 0;
    color: #6c7c93;
    font-size: 12px;
    line-height: 1.5;
}

/* Nothing is coming. The ring stops turning rather than spinning over a dead
   viewer, and the bar goes the colour of the message. */
.match-loader-failed .match-loader-ring {
    animation: none;
    border-top-color: #d9534f;
}

/* Neither of these means anything any more: a bar cannot report progress
   toward something that is not going to happen, and the note is about a wait
   that is over. */
.match-loader-failed .match-loader-track,
.match-loader-failed .match-loader-note {
    display: none;
}

.match-loader-failed .match-loader-phase {
    color: #e79a97;
}

@media (prefers-reduced-motion: reduce) {
    .match-loader-ring,
    .match-loader-fill::after {
        animation: none;
    }
}

.match-canvas {
    position: relative;
    display: block;
    width: 100%;
    height: 100%;
    outline: none;
    /* Every touch on here is a camera control (see `src/match/src/touch.rs`),
       so none of them may also be a scroll, a page zoom, a text selection or a
       long-press callout — the last two are iOS, which offers them over a
       canvas as readily as over a paragraph. */
    touch-action: none;
    user-select: none;
    -webkit-user-select: none;
    -webkit-touch-callout: none;
}

/* Fullscreen toggle, top-right of the stage.
   A SIBLING of the canvas rather than a child of it — the viewer claims the
   pointer buttons and the arrow keys on the canvas element itself, so anything
   inside it would be fighting for the same events. Painted over the canvas by
   z-index, which the canvas (position: relative, z-index: auto) does not
   contest. */
.match-fullscreen {
    position: absolute;
    top: 10px;
    right: 10px;
    z-index: 3;
    width: 34px;
    height: 34px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    /* Same translucent slab as the viewer's own transport bar, so the two read
       as one overlay rather than as page chrome sitting on top of a render. */
    background: rgba(8, 13, 20, 0.72);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 6px;
    color: #c6d3e4;
    font-size: 14px;
    cursor: pointer;
    /* The replay is mostly green; at 55% the button stays legible without
       drawing the eye away from the play. */
    opacity: 0.55;
    transition: opacity 0.15s ease, background 0.15s ease, color 0.15s ease;
}

.match-stage:hover .match-fullscreen {
    opacity: 1;
}

.match-fullscreen:hover {
    opacity: 1;
    background: rgba(8, 13, 20, 0.92);
    color: #fff;
}

.match-fullscreen:focus-visible {
    opacity: 1;
    outline: 2px solid #4a9eff;
    outline-offset: 2px;
}

/* A touch device has no hover to reveal the button with. */
@media (hover: none) {
    .match-fullscreen {
        opacity: 0.85;
    }
}

/* --- Camera controls legend ---
   Between the header and the stage, and drawn on the page rather than over the
   canvas: an overlay would have to fade, and a control you have to wait for is
   one you cannot look up. It is also what separates the scoreboard from the
   replay, which is why `.fm-match-page` needs no padding of its own. Quiet
   enough that the replay stays the loudest thing on the page — the only colour
   in it is the part of the mouse that does the work. */

.match-hints {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 6px 22px;
    margin: 5px;
    /* Even either side, so the line sits in the middle of the gap rather than
       against the header or the top of the stage. */
    padding: 5px 0;
    color: #6f8199;
    font-size: 11.5px;
    line-height: 20px;
}

.match-hint {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    white-space: nowrap;
}

/* Drawn at 1:1 with its viewBox, so every edge lands on a whole pixel. Smaller
   than this and the two icons stop telling each other apart — the lit wheel and
   the lit right button are only a few pixels each. */
.match-hint-icon {
    flex: 0 0 auto;
    width: 14px;
    height: 20px;
}

/* The arrow cluster is three keys wide where a mouse is one body, and the touch
   icons are square: same 20px height as their neighbours, their own width. */
.match-hint-icon--keys,
.match-hint-icon--wide {
    width: 20px;
}

/* The mouse body and its button seam, drawn in the caption's own colour so the
   legend reads as one piece of text. */
.mh-shell {
    fill: none;
    stroke: currentColor;
    stroke-width: 1.1;
    opacity: 0.75;
}

/* The live part: the wheel on one icon, the right button on the other. Same
   blue the transport bar uses for the played part of the match, which is the
   page's one "this is the thing that moves" colour. */
.mh-live {
    fill: #4aadfa;
    stroke: none;
}

/* Whichever legend belongs to the pointer in use. A phone used to be shown
   neither — the mouse one was simply hidden — which left the one device whose
   camera controls cannot be guessed from a keycap as the one device with
   nothing to read. The height budget above stays as it is: the line is still
   one line, it just describes fingers now.

   `pointer: coarse` is the PRIMARY input, so a touchscreen laptop keeps the
   mouse legend. Its stick appears anyway the moment the screen is actually
   touched — the viewer waits for a real finger rather than for a media query,
   see `TouchDevice` in `src/match/src/touch.rs`. */
.match-hints--touch {
    display: none;
}

@media (pointer: coarse) {
    .match-hints--mouse {
        display: none;
    }

    .match-hints--touch {
        display: flex;
    }
}

/* A phone in portrait has no room for three captions on one line at the desktop
   spacing. Tighter rather than fewer: every one of them names a control that has
   no other label anywhere. */
@media (max-width: 480px) {
    .match-hints {
        gap: 3px 14px;
        font-size: 11px;
    }
}

/* Fullscreen, both ways of getting there.
   `aspect-ratio` has to go: it is what pins the stage to 16/9 in the page, and
   left on it would letterbox the viewer inside a screen that is already the
   right shape. */
.match-stage:fullscreen,
.match-stage:-webkit-full-screen,
.match-stage-faux-fullscreen {
    width: 100%;
    height: 100%;
    aspect-ratio: auto;
    border-radius: 0;
}

/* The fallback for browsers with no element fullscreen (iOS Safari). Covers
   the viewport instead of the screen — the browser's own chrome stays, but the
   replay gets everything below it. */
.match-stage-faux-fullscreen {
    position: fixed;
    inset: 0;
    z-index: 1080;
}

/* Native fullscreen hides the page's scrollbar on its own; the fallback has
   to be told, or the bar stays and takes a strip off the width the stage is
   supposed to be covering. */
html.match-scroll-locked,
html.match-scroll-locked body {
    overflow: hidden;
}

.fm-match-recording-disabled {
    color: #8a9bb5;
    font-size: 14px;
    padding: 60px 24px;
    text-align: center;
    background: #1a2233;
    border-radius: 6px;
    margin-top: 46px;
}

.fm-match-recording-disabled i {
    font-size: 32px;
    display: block;
    margin-bottom: 16px;
    color: #5a6a80;
}

.fm-match-recording-disabled p {
    margin: 0 0 12px;
    line-height: 1.5;
}

.fm-match-recording-disabled a {
    color: #4a9eff;
    text-decoration: none;
}

.fm-match-recording-disabled a:hover {
    text-decoration: underline;
}

/* ============================================
   TEAM TACTICS PAGE
   ============================================ */

.fm-tactics-grid {
    display: grid;
    grid-template-columns: 300px 1fr;
    gap: 14px;
    align-items: start;
}

.fm-tactics-grid > .fm-panel {
    overflow: hidden;
}

.fm-tactics-grid > .fm-panel .fm-pitch {
    display: flex;
    align-items: center;
    justify-content: center;
}

/* --- Player list --- */

.fm-tactics-list {
    padding: 0;
}

.fm-tactic-row {
    display: flex;
    align-items: center;
    gap: 0;
    padding: 7px 12px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.025);
    transition: background 0.1s;
}

.fm-tactic-row:last-child {
    border-bottom: none;
}

.fm-tactic-row:nth-child(even) {
    background: rgba(0, 0, 0, 0.1);
}

.fm-tactic-row:hover {
    background: rgba(255, 255, 255, 0.03);
}

.fm-tactic-num {
    width: 22px;
    font-size: 11px;
    font-weight: 700;
    color: #3e4c55;
    text-align: center;
    flex-shrink: 0;
}

.fm-tactic-pos {
    width: 36px;
    font-size: 10px;
    font-weight: 700;
    color: #4a9d5b;
    text-transform: uppercase;
    letter-spacing: 0.3px;
    flex-shrink: 0;
}

.fm-tactic-name {
    font-size: 13px;
    font-weight: 500;
    color: #d0d8e0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.fm-tactic-row:hover .fm-tactic-name {
    color: #fff;
}

/* --- Pitch --- */

.fm-pitch {
    padding: 12px;
}

.fm-pitch-surface {
    position: relative;
    width: 100%;
    aspect-ratio: 0.7;
    background: repeating-linear-gradient(
        180deg,
        #1e5a1e 0%,
        #1e5a1e 9.09%,
        #226222 9.09%,
        #226222 18.18%
    );
    border: 2px solid rgba(255, 255, 255, 0.18);
    border-radius: 3px;
    overflow: hidden;
    box-shadow:
        inset 0 0 60px rgba(0, 0, 0, 0.3),
        0 4px 20px rgba(0, 0, 0, 0.4);
}

/* Subtle grain overlay */
.fm-pitch-surface::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        radial-gradient(
            ellipse at 50% 0%,
            rgba(255, 255, 255, 0.04) 0%,
            transparent 60%
        ),
        radial-gradient(
            ellipse at 50% 100%,
            rgba(255, 255, 255, 0.04) 0%,
            transparent 60%
        );
    pointer-events: none;
    z-index: 0;
}

/* --- Field markings --- */

.fm-pitch-half-line {
    position: absolute;
    top: 50%;
    left: 0;
    right: 0;
    height: 0;
    border-top: 2px solid rgba(255, 255, 255, 0.22);
    z-index: 1;
}

.fm-pitch-center-circle {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 22%;
    aspect-ratio: 1;
    border: 2px solid rgba(255, 255, 255, 0.22);
    border-radius: 50%;
    transform: translate(-50%, -50%);
    z-index: 1;
}

.fm-pitch-center-dot {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 6px;
    height: 6px;
    background: rgba(255, 255, 255, 0.28);
    border-radius: 50%;
    transform: translate(-50%, -50%);
    z-index: 1;
}

/* Penalty boxes */
.fm-pitch-box-top {
    position: absolute;
    top: 0;
    left: 18%;
    width: 64%;
    height: 16%;
    border: 2px solid rgba(255, 255, 255, 0.22);
    border-top: none;
    z-index: 1;
}

.fm-pitch-box-bottom {
    position: absolute;
    bottom: 0;
    left: 18%;
    width: 64%;
    height: 16%;
    border: 2px solid rgba(255, 255, 255, 0.22);
    border-bottom: none;
    z-index: 1;
}

/* Goal areas */
.fm-pitch-goal-top {
    position: absolute;
    top: 0;
    left: 32%;
    width: 36%;
    height: 6.5%;
    border: 2px solid rgba(255, 255, 255, 0.22);
    border-top: none;
    z-index: 1;
}

.fm-pitch-goal-bottom {
    position: absolute;
    bottom: 0;
    left: 32%;
    width: 36%;
    height: 6.5%;
    border: 2px solid rgba(255, 255, 255, 0.22);
    border-bottom: none;
    z-index: 1;
}

/* Penalty arcs */
.fm-pitch-arc-top {
    position: absolute;
    top: 13.5%;
    left: 50%;
    width: 14%;
    aspect-ratio: 1;
    border: 2px solid rgba(255, 255, 255, 0.22);
    border-radius: 50%;
    transform: translateX(-50%);
    clip-path: inset(50% 0 0 0);
    z-index: 1;
}

.fm-pitch-arc-bottom {
    position: absolute;
    bottom: 13.5%;
    left: 50%;
    width: 14%;
    aspect-ratio: 1;
    border: 2px solid rgba(255, 255, 255, 0.22);
    border-radius: 50%;
    transform: translateX(-50%);
    clip-path: inset(0 0 50% 0);
    z-index: 1;
}

/* Corner arcs */
.fm-pitch-corner-tl,
.fm-pitch-corner-tr,
.fm-pitch-corner-bl,
.fm-pitch-corner-br {
    position: absolute;
    width: 3.5%;
    aspect-ratio: 1;
    border: 2px solid rgba(255, 255, 255, 0.22);
    border-radius: 50%;
    z-index: 1;
}

.fm-pitch-corner-tl {
    top: -1.75%;
    left: -1.75%;
}

.fm-pitch-corner-tr {
    top: -1.75%;
    right: -1.75%;
}

.fm-pitch-corner-bl {
    bottom: -1.75%;
    left: -1.75%;
}

.fm-pitch-corner-br {
    bottom: -1.75%;
    right: -1.75%;
}

/* --- Player positions --- */

.fm-pitch-player {
    position: absolute;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    transform: translateX(-50%);
    z-index: 2;
}

.fm-pitch-player-dot {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: linear-gradient(145deg, #4ec95e, #38a848);
    border: 2px solid rgba(255, 255, 255, 0.7);
    box-shadow:
        0 0 10px rgba(74, 200, 90, 0.5),
        0 0 4px rgba(74, 200, 90, 0.3),
        0 2px 6px rgba(0, 0, 0, 0.4);
}

.fm-pitch-player-name {
    font-size: 10px;
    font-weight: 600;
    color: #fff;
    text-shadow:
        0 1px 3px rgba(0, 0, 0, 0.8),
        0 0 6px rgba(0, 0, 0, 0.5);
    white-space: nowrap;
    letter-spacing: 0.2px;
    max-width: 80px;
    overflow: hidden;
    text-overflow: ellipsis;
    text-align: center;
}

/* GK - special golden dot */
.fm-pitch-player.pos-gk .fm-pitch-player-dot {
    background: linear-gradient(145deg, #e8c830, #c8a820);
    border-color: rgba(255, 255, 255, 0.75);
    box-shadow:
        0 0 10px rgba(232, 200, 48, 0.5),
        0 0 4px rgba(232, 200, 48, 0.3),
        0 2px 6px rgba(0, 0, 0, 0.4);
}

/* --- Position placement (bottom = own goal, top = attacking) --- */

/* Row 1: Goalkeeper */
.fm-pitch-player.pos-gk {
    left: 50%;
    bottom: 3%;
}

/* Row 2: Sweeper */
.fm-pitch-player.pos-sw {
    left: 50%;
    bottom: 14%;
}

/* Row 3: Defenders */
.fm-pitch-player.pos-dl {
    left: 10%;
    bottom: 22%;
}

.fm-pitch-player.pos-dcl {
    left: 30%;
    bottom: 22%;
}

.fm-pitch-player.pos-dc {
    left: 50%;
    bottom: 22%;
}

.fm-pitch-player.pos-dcr {
    left: 70%;
    bottom: 22%;
}

.fm-pitch-player.pos-dr {
    left: 90%;
    bottom: 22%;
}

/* Row 4: Defensive mid / Wingbacks */
.fm-pitch-player.pos-wl {
    left: 10%;
    bottom: 35%;
}

.fm-pitch-player.pos-dm {
    left: 50%;
    bottom: 32%;
}

.fm-pitch-player.pos-wr {
    left: 90%;
    bottom: 35%;
}

/* Row 5: Midfielders */
.fm-pitch-player.pos-ml {
    left: 10%;
    bottom: 48%;
}

.fm-pitch-player.pos-mcl {
    left: 33%;
    bottom: 48%;
}

.fm-pitch-player.pos-mc {
    left: 50%;
    bottom: 48%;
}

.fm-pitch-player.pos-mcr {
    left: 67%;
    bottom: 48%;
}

.fm-pitch-player.pos-mr {
    left: 90%;
    bottom: 48%;
}

/* Row 6: Attacking midfielders */
.fm-pitch-player.pos-aml {
    left: 15%;
    bottom: 65%;
}

.fm-pitch-player.pos-amc {
    left: 50%;
    bottom: 65%;
}

.fm-pitch-player.pos-amr {
    left: 85%;
    bottom: 65%;
}

/* Row 7: Forwards */
.fm-pitch-player.pos-fl {
    left: 28%;
    bottom: 76%;
}

.fm-pitch-player.pos-fc {
    left: 50%;
    bottom: 76%;
}

.fm-pitch-player.pos-fr {
    left: 72%;
    bottom: 76%;
}

/* Row 8: Striker */
.fm-pitch-player.pos-st {
    left: 50%;
    bottom: 86%;
}

/* Row 8b: Striker pair (4-4-2) */
.fm-pitch-player.pos-stl {
    left: 36%;
    bottom: 72%;
}

.fm-pitch-player.pos-str {
    left: 64%;
    bottom: 72%;
}

/* Compact pitch variant */
.fm-pitch-compact {
    padding: 16px;
}

.fm-pitch-compact .fm-pitch-surface {
    aspect-ratio: 0.72;
    width: 100%;
    max-width: 480px;
    margin: 0 auto;
}

.fm-pitch-compact .fm-pitch-player-dot {
    width: 24px;
    height: 24px;
}

.fm-pitch-compact .fm-pitch-player-name {
    font-size: 9px;
    max-width: 70px;
}

/* ============================================
   RESPONSIVE - MOBILE SIDEBAR & HEADER
   ============================================ */

/* Hamburger button */

.fm-menu-toggle {
    display: none;
    align-items: center;
    justify-content: center;
    width: 48px;
    flex-shrink: 0;
    background: none;
    border: none;
    border-right: 1px solid var(--header-border, rgba(0, 0, 0, 0.2));
    cursor: pointer;
    padding: 0;
}

.fm-menu-toggle span {
    display: block;
    width: 18px;
    height: 2px;
    background: #1e272d;
    position: relative;
}

.fm-menu-toggle span::before,
.fm-menu-toggle span::after {
    content: "";
    position: absolute;
    left: 0;
    width: 18px;
    height: 2px;
    background: #1e272d;
}

.fm-menu-toggle span::before {
    top: -6px;
}

.fm-menu-toggle span::after {
    top: 6px;
}

/* Sidebar overlay */

.fm-sidebar-overlay {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.5);
    z-index: 1040;
}

/* ============================================
   FINANCES PAGE
   ============================================ */

/* ── Hero Row: Balance + Budget Cards ── */
.fin-hero-row {
    display: flex;
    gap: 16px;
    margin-bottom: 16px;
}

.fin-balance-hero {
    flex: 0 0 280px;
    background: linear-gradient(135deg, #1a2e1a 0%, #1c2830 60%);
    border: 1px solid #263340;
    border-radius: 4px;
    padding: 20px 24px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.fin-hero-label {
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1.2px;
    color: #546a78;
    margin-bottom: 6px;
}

.fin-hero-amount {
    font-size: 28px;
    font-weight: 700;
    color: #4a9d5b;
    letter-spacing: -0.5px;
    line-height: 1.1;
}

.fin-hero-amount.fin-negative {
    color: #c44b4b;
}

.fin-hero-bar {
    margin-top: 12px;
    height: 4px;
    background: #263340;
    border-radius: 2px;
    overflow: hidden;
}

.fin-hero-bar-fill {
    height: 100%;
    width: 65%;
    background: linear-gradient(90deg, #3a7d4a, #4a9d5b);
    border-radius: 2px;
    transition: width 0.5s ease;
}

.fin-hero-bar-fill.fin-bar-negative {
    background: linear-gradient(90deg, #a03a3a, #c44b4b);
    width: 35%;
}

/* ── Budget Cards ── */
.fin-budget-cards {
    flex: 1;
    display: flex;
    gap: 12px;
}

.fin-budget-card {
    flex: 1;
    background: linear-gradient(180deg, #1c2830 0%, #192228 100%);
    border: 1px solid #263340;
    border-radius: 4px;
    padding: 16px 18px;
    display: flex;
    align-items: center;
    gap: 14px;
}

.fin-budget-icon {
    width: 38px;
    height: 38px;
    border-radius: 8px;
    background: rgba(74, 157, 91, 0.12);
    color: #4a9d5b;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 15px;
    flex-shrink: 0;
}

.fin-budget-icon.fin-icon-wages {
    background: rgba(59, 130, 196, 0.12);
    color: #3b82c4;
}

.fin-budget-icon.fin-icon-weekly {
    background: rgba(196, 160, 59, 0.12);
    color: #c4a03b;
}

.fin-budget-label {
    font-size: 10px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.8px;
    color: #546a78;
    margin-bottom: 2px;
}

.fin-budget-value {
    font-size: 18px;
    font-weight: 700;
    color: #d0d6dc;
    letter-spacing: -0.3px;
}

/* ── Income / Expenses Flow Cards ── */
.fin-flow-row {
    display: flex;
    gap: 12px;
    margin-bottom: 16px;
}

.fin-flow-card {
    flex: 1;
    background: linear-gradient(180deg, #1c2830 0%, #192228 100%);
    border: 1px solid #263340;
    border-radius: 4px;
    padding: 14px 18px;
    display: flex;
    align-items: center;
    gap: 12px;
}

.fin-flow-icon {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 13px;
    flex-shrink: 0;
}

.fin-flow-income .fin-flow-icon {
    background: rgba(74, 157, 91, 0.15);
    color: #4a9d5b;
}

.fin-flow-expense .fin-flow-icon {
    background: rgba(196, 75, 75, 0.15);
    color: #c44b4b;
}

.fin-flow-net .fin-flow-icon {
    background: rgba(59, 130, 196, 0.15);
    color: #3b82c4;
}

.fin-flow-label {
    font-size: 10px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.8px;
    color: #546a78;
    margin-bottom: 1px;
}

.fin-flow-value {
    font-size: 16px;
    font-weight: 700;
    color: #d0d6dc;
}

.fin-flow-value.fin-negative {
    color: #c44b4b;
}

/* ── Chart Panel ── */
.fin-chart-panel {
    margin-bottom: 16px;
}

.fin-chart-container {
    padding: 16px;
    position: relative;
    min-height: 220px;
}

.fin-chart-container canvas {
    width: 100% !important;
}

.fin-no-data {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #546a78;
    font-size: 13px;
    font-weight: 500;
}

/* ── Breakdown Row: Income + Expenses ── */
.fin-breakdown-row {
    display: flex;
    gap: 16px;
    margin-bottom: 16px;
}

.fin-breakdown-panel {
    flex: 1;
}

.fin-breakdown-panel .fin-table td:first-child {
    color: #8a939b;
    font-size: 12px;
}

/* ── Bottom Row: History + Sponsors ── */
.fin-bottom-row {
    display: flex;
    gap: 16px;
}

.fin-history-panel {
    flex: 2;
}

.fin-sponsor-panel {
    flex: 1;
}

/* ── Finance Table ── */
.fin-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 12px;
}

.fin-table thead th {
    padding: 8px 12px;
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.8px;
    color: #546a78;
    border-bottom: 1px solid #263340;
    text-align: left;
}

.fin-table tbody tr {
    border-bottom: 1px solid #1f2a32;
    transition: background 0.1s;
}

.fin-table tbody tr:hover {
    background: rgba(255, 255, 255, 0.02);
}

.fin-table tbody td {
    padding: 7px 12px;
    color: #a0aab2;
}

.fin-col-num {
    text-align: right !important;
    font-variant-numeric: tabular-nums;
}

.fin-col-month {
    font-weight: 500;
    color: #d0d6dc;
}

.fin-income-text {
    color: #4a9d5b !important;
}

.fin-expense-text {
    color: #c44b4b !important;
}

.fin-balance-pos {
    color: #4a9d5b !important;
}

.fin-negative {
    color: #c44b4b !important;
}

.fin-empty {
    padding: 24px;
    text-align: center;
    color: #546a78;
    font-size: 12px;
}

/* Short viewport: flip language menu downward so it doesn't clip above screen */

@media (max-height: 500px) {
    .fm-sidebar-lang-menu {
        bottom: auto;
        top: 100%;
        box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
    }
}

/* Below xl breakpoint (< 1200px) */

@media (max-width: 1199.98px) {
    .fm-menu-toggle {
        display: flex;
    }

    .fm-sidebar {
        position: fixed !important;
        top: 0;
        left: 0;
        bottom: 0;
        height: auto !important;
        /* Same right gutter as the root rule, restated so the drawer's
           sizing reads in one place. */
        padding: 0 1em 0 0 !important;
        /* Same content-driven width as the desktop rail, with a wider
           floor for touch targets. The px cap is gone, but the vw one
           stays: this drawer is position:fixed, so anything past the
           viewport edge is unreachable — not merely wide — and the
           overlay behind it needs a strip left to tap for dismiss. */
        width: max-content !important;
        min-width: 240px;
        max-width: 85vw;
        z-index: 1050;
        transform: translateX(-100%);
        transition: transform 0.25s ease;
        flex: none !important;
    }

    body.fm-sidebar-open .fm-sidebar {
        transform: translateX(0);
    }

    body.fm-sidebar-open .fm-sidebar-overlay {
        display: block;
    }

    .fm-header {
        padding-left: 0;
    }

    .fm-header-title,
    .fm-header-scoreboard {
        padding-left: 16px;
    }

    .fm-header-title h1 {
        font-size: 22px;
    }

    .fm-header-sub {
        font-size: 15px;
    }

    .fm-date {
        padding: 0 14px;
    }

    .fm-date-main {
        font-size: 13px;
    }

    .fm-process-btn {
        min-width: 100px;
        padding: 0 14px;
        font-size: 12px;
    }

    .fm-page {
        padding: 12px 12px;
    }

    /* Finance page: stack layouts */
    .fin-hero-row {
        flex-direction: column;
    }

    .fin-balance-hero {
        flex: none;
    }

    .fin-budget-cards {
        flex-wrap: wrap;
    }

    .fin-flow-row {
        flex-wrap: wrap;
    }

    .fin-flow-card {
        flex: 1 1 calc(50% - 6px);
        min-width: 180px;
    }

    .fin-breakdown-row {
        flex-direction: column;
    }

    .fin-bottom-row {
        flex-direction: column;
    }

    /* Player page: single row with horizontal scroll */
    .fm-player-grid {
        display: flex;
        gap: 12px;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
        -ms-overflow-style: none;
    }

    .fm-player-grid::-webkit-scrollbar {
        display: none;
    }

    .fm-player-grid-left {
        order: 2;
        flex: 0 0 220px;
        margin: 0 auto;
    }

    .fm-player-grid-right {
        order: 1;
        flex: 1 0 max(500px, 70%);
    }

    .fp-field {
        max-width: 20em;
    }

    .fm-ph-identity {
        padding: 10px 16px;
    }

    .fm-ph-id-col:last-child {
        flex-direction: row;
        flex-wrap: wrap;
        gap: 6px 24px;
    }

    .fm-ph-name-row .fm-ph-sep,
    .fm-ph-name-row .fm-ph-born {
        display: none;
    }

    .fm-ph-id-col.basic {
        min-width: 190px;
    }

    /* Wide tables: horizontal scroll via wrapper-less approach.
       display:grid ensures .fm-panel-head stretches to the widest child (the table)
       so the gradient background covers the full scrollable width. */
    .fm-panel {
        display: grid;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
        -ms-overflow-style: none;
    }

    .fm-panel::-webkit-scrollbar {
        display: none;
    }

    .fm-panel > .fm-panel-head {
        position: sticky;
        left: 0;
    }

    .fm-stats,
    .fm-squad,
    .fm-watchlist-table {
        width: max-content;
        min-width: 100%;
    }

    /* Opt out of the `max-content` sizing above: this table's own column
       shares decide its width, and against a `max-content` table those
       percentages are resolved as `auto`, which drops the whole column
       model. */
    .fm-history-table {
        width: 100%;
        min-width: 100%;
    }

    .fm-schedule thead th,
    .fm-schedule tbody td {
        padding: 7px 8px;
        font-size: 12px;
        white-space: nowrap;
    }

    .fm-squad thead th,
    .fm-squad tbody td {
        padding: 6px 8px;
        font-size: 14px;
    }

    .fm-squad .sq-cond {
        width: 130px;
    }

    .fm-squad .sq-name a {
        font-size: 14px;
    }

    /* Transfers page: stack side-by-side panels */
    .fm-transfers-row {
        grid-template-columns: 1fr;
    }

    .fm-transfers-row .fm-squad {
        min-width: 0;
    }

    /* Player Transfer tab: hide less critical columns */
    .fm-pt-table .pt-phase {
        display: none;
    }

    .fm-pt-table .pt-date {
        display: none;
    }

    .fm-pt-label {
        min-width: 80px;
    }

    /* Tactics page: stack */
    .fm-tactics-grid {
        grid-template-columns: 1fr;
    }

    .fm-pitch-compact .fm-pitch-surface {
        max-width: 400px;
    }
}

/* Below sm breakpoint (< 576px) */

@media (max-width: 767.98px) {
    /* Player banner: keep photo and identity side by side */
    .fm-ph-photo {
        width: 130px;
        padding: 14px 10px;
    }

    .fm-ph-photo-frame {
        width: 100px;
        height: 115px;
    }

    .fm-ph-identity {
        padding: 10px 16px;
    }

    .fm-ph-name {
        font-size: 18px;
    }

    /* Skills grid: horizontal columns, no scroll */
    .fm-skills-grid {
        display: flex;
    }

    .fm-skills-grid .fm-skill-col {
        flex: 1 1 0;
        min-width: 0;
        border-right: 1px solid #263340;
        border-bottom: none;
    }

    .fm-skills-grid .fm-skills {
        table-layout: fixed;
        width: 100%;
    }

    .fm-skills-grid .fm-skills td:first-child {
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .fm-skills td {
        font-size: 13px;
    }

    .fm-skills-grid .fm-skills td:last-child {
        width: 28px;
    }

    .fm-skills-grid .fm-skill-col:last-child {
        border-right: none;
    }

    .fm-staff-attrs {
        grid-template-columns: 1fr;
    }

    .fm-staff-attrs .fm-skill-col {
        border-right: none;
        border-bottom: 1px solid #263340;
    }

    .fm-staff-attrs .fm-skill-col:nth-child(4),
    .fm-staff-attrs .fm-skill-col:nth-child(5) {
        border-bottom: 1px solid #263340;
    }

    .fm-staff-attrs .fm-skill-col:last-child {
        border-bottom: none;
    }

    /* Schedule: compact table on mobile — same layout as desktop, smaller */
    .fm-schedule thead th,
    .fm-schedule tbody td {
        padding: 5px 4px;
        font-size: 11px;
        white-space: nowrap;
    }

    .fm-schedule .sch-time {
        display: none;
    }

    .fm-schedule .sch-venue .fm-venue {
        padding: 1px 5px;
        font-size: 9px;
    }

    .fm-schedule .sch-result .fm-result,
    .fm-schedule .sch-result .fm-pending {
        font-size: 12px;
    }

    /* History table: compact columns on mobile — flag-only nat, league and
       club names kept in full on one line, panel scrolls to reach them.
       Every column keeps a floor, so the sum of the floors is the table's
       narrowest state and nothing folds. */
    .fm-history-table th.sq-season,
    .fm-history-table td.sq-season {
        width: 84px;
        min-width: 84px;
    }

    /* Narrower name box on mobile — 12px type, and the column is close
       enough to the box that the centring reads as left-aligned anyway.
       The padding matches the 6px this breakpoint puts on the right, so the
       box still sits dead centre. */
    .fm-history-table .sq-club-name {
        min-width: 118px;
    }

    .fm-history-table thead th.sq-club,
    .fm-history-table td.sq-club {
        padding-left: 6px;
    }

    .fm-history-table th.sq-stat,
    .fm-history-table td.sq-stat {
        width: 52px;
        min-width: 52px;
    }

    .fm-history-table td.sq-nat a {
        font-size: 0;
    }

    .fm-history-table td.sq-nat .flag {
        font-size: 16px;
        margin-right: 0;
    }

    /* Narrower floor than desktop — the name still sets the real width,
       and the panel scrolls horizontally rather than cutting it. */
    .fm-history-table td.sq-league,
    .fm-history-table thead th.sq-league {
        min-width: 104px;
    }

    .fm-history-table td.sq-league {
        font-size: 11px;
    }

    .fm-history-table thead th,
    .fm-history-table tbody td {
        padding: 7px 6px;
        font-size: 12px;
        white-space: nowrap;
    }

    /* Personal tab: stack cards vertically */
    .fm-personal-grid {
        grid-template-columns: 1fr;
    }

    .fm-happiness-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 575.98px) {
    .fm-ph-id-col.basic {
        min-width: 190px;
    }

    .fm-header {
        min-height: 52px;
        padding-left: 0;
    }

    .fm-header-title,
    .fm-header-scoreboard {
        padding-left: 10px;
    }

    .fm-header-title h1 {
        font-size: 16px;
    }

    .fm-header-sub {
        font-size: 15px;
    }

    .fm-header-sub {
        font-size: 13px;
    }

    .fm-header-actions {
        flex-shrink: 1;
    }

    .fm-date {
        padding: 0px 10px 0 0;
    }

    .fm-date-main {
        font-size: 11px;
    }

    .fm-date-sub {
        font-size: 10px;
    }

    .fm-process-btn {
        min-width: 70px;
        padding: 0 10px;
        font-size: 10px;
    }

    .fm-process-label {
        letter-spacing: 0.3px;
        margin-right: -0.3px;
    }

    .fm-tabbar {
        padding: 0 8px;
    }

    .fm-tab {
        padding: 10px 12px;
        font-size: 9px;
    }

    .fm-watchlist-toggle {
        margin-left: 0;
    }

    .fm-dd-open .fm-tabbar-dropdown-menu {
        display: block;
        left: 0;
        right: 0;
        min-width: 0;
        width: 100%;
        border-left: none;
        border-right: none;
    }

    .fm-tabbar-dropdown-toggle {
        padding: 10px 12px;
        font-size: 9px;
    }

    .fm-page {
        padding: 10px 8px;
    }

    .fm-ph-name {
        font-size: 16px;
    }

    /* Staff profile: tighter on small */
    .fm-staff-profile {
        padding: 12px;
    }

    .fm-sp-info-row {
        font-size: 12px;
        flex-wrap: wrap;
    }

    /* Squad: tighter on small screens */
    .fm-squad thead th,
    .fm-squad tbody td {
        padding: 5px 6px;
        font-size: 14px;
    }

    .fm-squad .sq-inf {
        width: 32px;
    }

    .fm-squad .sq-cond {
        width: 117px;
    }

    .fm-cond-bar {
        width: 52px;
    }

    .fm-stars .star {
        width: 12px;
        height: 12px;
        font-size: 11px;
        line-height: 12px;
    }
}

/* ============================================
   WATCHLIST
   ============================================ */

.fm-watchlist-remove {
    background: none;
    border: none;
    color: #4e5a63;
    cursor: pointer;
    padding: 4px 8px;
    font-size: 12px;
    border-radius: 3px;
    transition:
        color 0.1s,
        background 0.1s;
}

.fm-watchlist-remove:hover {
    color: #e74c3c;
    background: rgba(231, 76, 60, 0.12);
}

.fm-watchlist-table {
    width: 100%;
}

/* fixed-size columns */
.fm-watchlist-table .wl-pos {
    width: 3em;
    color: #7a868e;
    font-size: 12px;
    white-space: nowrap;
    text-align: center;
}

.fm-watchlist-table .wl-status {
    width: 5em;
    text-align: center;
}

.fm-watchlist-table .wl-nat {
    width: 6em;
}

.fm-watchlist-table .wl-age {
    width: 6em;
    text-align: center;
}

.fm-watchlist-table .wl-ability {
    width: 5.5em;
}

.fm-watchlist-table .wl-potential {
    width: 5.5em;
}

.fm-watchlist-table .wl-cond {
    width: 8em;
}

.fm-watchlist-table .wl-apps {
    width: 6em;
    text-align: center;
}

.fm-watchlist-table .wl-value {
    width: 5em;
    text-align: center;
}

.fm-watchlist-table .wl-actions {
    width: 2em;
    text-align: center;
}

/* stretch columns */
.fm-watchlist-table .wl-name {
    max-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fm-watchlist-table .wl-name a {
    font-weight: 400;
}

/* Shares leftover width with the name/team columns (`max-width: 0`), but
   the league name is never cut — it wraps inside whatever width the
   column ends up with. */
.fm-watchlist-table .wl-league {
    max-width: 0;
    white-space: normal;
    overflow-wrap: anywhere;
    line-height: 1.3;
    text-align: left;
}

.fm-watchlist-table .wl-league a {
    color: #7a868e;
    font-size: 12px;
}

.fm-watchlist-table .wl-league a:hover {
    color: #fff;
}

.fm-watchlist-table .wl-team {
    max-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    text-align: left;
}

.fm-watchlist-table .wl-team a {
    font-weight: 500;
}

@media (max-width: 1199.98px) {
    .fm-watchlist-table .wl-name,
    .fm-watchlist-table .wl-team,
    .fm-watchlist-table .wl-league {
        max-width: none;
        width: auto;
        overflow: visible;
        text-overflow: clip;
        white-space: nowrap;
    }
}

/* ============================================
   AI PAGE
   ============================================ */

.fm-ai-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 12px;
    font-size: 18px;
    color: #6e7b85;
    transition: color 0.15s;
}

.fm-ai-icon:hover {
    color: #4a9eff;
}

.fm-header-colored .fm-ai-icon {
    color: var(--tab-fg, rgba(255, 255, 255, 0.6));
}

.fm-header-colored .fm-ai-icon:hover {
    color: var(--tab-fg-active, #fff);
}

@media (max-width: 768px) {
    .fm-ai-icon-robot,
    .fm-ai-icon-about {
        display: none;
    }
}

.fm-ai-stats {
    display: flex;
    gap: 24px;
    padding: 16px 14px;
}

.fm-ai-stat-item {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.fm-ai-stat-label {
    font-size: 11px;
    color: #546a78;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.fm-ai-stat-value {
    font-size: 22px;
    font-weight: 600;
    color: #d0d6dc;
}

.fm-ai-add-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border: 1px solid #2a8636;
    border-radius: 4px;
    background: transparent;
    color: #2a8636;
    cursor: pointer;
    font-size: 13px;
    transition:
        background 0.15s,
        color 0.15s;
}

.fm-ai-add-btn:hover {
    background: #2a8636;
    color: #fff;
}

.fm-ai-remove-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    border: none;
    border-radius: 4px;
    background: transparent;
    color: #a04040;
    cursor: pointer;
    font-size: 13px;
    transition:
        background 0.15s,
        color 0.15s;
}

.fm-ai-remove-btn:hover {
    background: rgba(160, 64, 64, 0.15);
    color: #d04040;
}

.fm-ai-modal {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.6);
    z-index: 1050;
    align-items: center;
    justify-content: center;
}

.fm-ai-modal-content {
    background: #1e2830;
    border: 1px solid #2a3640;
    border-radius: 8px;
    padding: 24px;
    width: 400px;
    max-width: 90vw;
}

.fm-ai-modal-content h3 {
    margin: 0 0 16px;
    font-size: 16px;
    font-weight: 600;
    color: #d0d6dc;
}

.fm-ai-form-group {
    margin-bottom: 12px;
}

.fm-ai-form-group label {
    display: block;
    font-size: 12px;
    color: #7a8a96;
    margin-bottom: 4px;
}

.fm-ai-form-group input {
    width: 100%;
    padding: 8px 10px;
    background: #151c22;
    border: 1px solid #2a3640;
    border-radius: 4px;
    color: #d0d6dc;
    font-size: 14px;
    font-family: inherit;
    box-sizing: border-box;
}

.fm-ai-form-group input:focus {
    outline: none;
    border-color: #4a9eff;
}

.fm-ai-modal-actions {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    margin-top: 20px;
}

.fm-ai-cancel-btn,
.fm-ai-save-btn {
    padding: 8px 16px;
    border-radius: 4px;
    font-size: 13px;
    font-family: inherit;
    cursor: pointer;
    border: 1px solid #2a3640;
    transition: background 0.15s;
}

.fm-ai-cancel-btn {
    background: transparent;
    color: #7a8a96;
}

.fm-ai-cancel-btn:hover {
    background: rgba(255, 255, 255, 0.05);
}

.fm-ai-save-btn {
    background: #2a8636;
    color: #fff;
    border-color: #2a8636;
}

.fm-ai-save-btn:hover {
    background: #339944;
}

/* ============================================
   FM DROPDOWN (tab-bar action menu)
   ============================================ */

.fm-watchlist-toggle {
    margin-left: auto;
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 9px 12px;
    font-size: 12px;
    line-height: 1;
    color: var(--tab-fg, #8a939b);
    background: transparent;
    border: none;
    border-bottom: 2px solid transparent;
    cursor: pointer;
    font-family: inherit;
    transition:
        color 0.15s,
        background 0.15s;
}

/* Floating tooltip — rendered at body level so .fm-tabbar's overflow-x:auto
   can't clip it or trigger a vertical scrollbar. Positioned by JS. */
.fm-tooltip {
    position: fixed;
    padding: 5px 9px;
    background: #1e272d;
    color: #fff;
    font-size: 10px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    white-space: nowrap;
    border-radius: 3px;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.25);
    opacity: 0;
    pointer-events: none;
    transform: translate(-50%, 2px);
    transition:
        opacity 0.12s ease-out,
        transform 0.12s ease-out;
    z-index: 2000;
}

.fm-tooltip::before {
    content: "";
    position: absolute;
    bottom: 100%;
    left: 50%;
    transform: translateX(-50%);
    border: 5px solid transparent;
    border-bottom-color: #1e272d;
}

.fm-tooltip.show {
    opacity: 1;
    transform: translate(-50%, 0);
}

.fm-watchlist-toggle:hover {
    color: var(--tab-fg-active, #1e272d);
    background: var(--tab-hover-bg, #f5f6f7);
}

.fm-watchlist-toggle:disabled {
    opacity: 0.35;
    cursor: not-allowed;
}

.fm-watchlist-toggle[data-in="true"] {
    color: var(--tab-active-border, #4a9d5b);
}

.fm-tabbar-dropdown {
    position: relative;
    flex-shrink: 0;
    display: flex;
    align-items: stretch;
}

.fm-tabbar-dropdown-toggle {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    margin: 0;
    padding: 9px 18px;
    font-size: 10px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.6px;
    line-height: 1;
    color: var(--tab-fg, #8a939b);
    background: transparent;
    border: none;
    border-bottom: 2px solid transparent;
    cursor: pointer;
    white-space: nowrap;
    font-family: inherit;
    transition:
        color 0.15s,
        border-color 0.15s,
        background 0.15s;
}

.fm-tabbar-dropdown-toggle:hover,
.fm-dd-open .fm-tabbar-dropdown-toggle {
    color: var(--tab-fg-active, #1e272d);
    background: var(--tab-hover-bg, #f5f6f7);
}

.fm-tabbar-dropdown-toggle:disabled {
    opacity: 0.35;
    cursor: not-allowed;
    pointer-events: none;
}

.fm-tabbar-dropdown-toggle .fm-dd-arrow {
    font-size: 7px;
    transition: transform 0.15s;
}

.fm-dd-open .fm-tabbar-dropdown-toggle .fm-dd-arrow {
    transform: rotate(180deg);
}

.fm-tabbar-dropdown-menu {
    display: none;
    position: fixed;
    min-width: 160px;
    background: var(--header-bg, #fff);
    border: 1px solid var(--header-border, #e0e3e6);
    border-top: none;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
    z-index: 200;
    padding: 4px 0;
}

.fm-dd-open .fm-tabbar-dropdown-menu {
    display: block;
}

.fm-tabbar-dropdown-menu button {
    display: block;
    width: 100%;
    padding: 8px 18px;
    font-size: 10px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.6px;
    color: var(--tab-fg, #8a939b);
    background: transparent;
    border: none;
    text-align: left;
    cursor: pointer;
    font-family: inherit;
    transition:
        color 0.15s,
        background 0.15s;
}

.fm-tabbar-dropdown-menu button:hover {
    color: var(--tab-fg-active, #1e272d);
    background: var(--tab-hover-bg, #f5f6f7);
}

.fm-tabbar-dropdown-menu .fm-dd-sep {
    height: 1px;
    background: var(--header-border, #e0e3e6);
    margin: 4px 0;
}

.fm-tabbar-dropdown-menu .fm-dd-check i {
    margin-right: 8px;
}

/* ============================================
   FM DIALOG (reusable)
   ============================================ */

.fm-dlg-backdrop {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.55);
    z-index: 1100;
    align-items: center;
    justify-content: center;
}

.fm-dlg-backdrop.fm-dlg-open {
    display: flex;
}

.fm-dlg {
    background: #1e2830;
    border: 1px solid #2a3640;
    border-radius: 8px;
    width: 400px;
    max-width: 90vw;
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.5);
    animation: fm-dlg-in 0.15s ease-out;
}

@keyframes fm-dlg-in {
    from {
        opacity: 0;
        transform: translateY(-10px) scale(0.97);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

.fm-dlg-header {
    padding: 16px 20px 12px;
    font-size: 15px;
    font-weight: 600;
    color: #d0d6dc;
    border-bottom: 1px solid #263340;
}

.fm-dlg-body {
    padding: 16px 20px;
}

.fm-dlg-msg {
    margin: 0 0 8px;
    font-size: 13px;
    color: #8a9aa6;
    line-height: 1.45;
}

.fm-dlg-field {
    margin-bottom: 14px;
}

.fm-dlg-field:last-child {
    margin-bottom: 0;
}

.fm-dlg-field label {
    display: block;
    font-size: 11px;
    font-weight: 600;
    color: #7a8a96;
    margin-bottom: 5px;
    text-transform: uppercase;
    letter-spacing: 0.4px;
}

.fm-dlg-field input,
.fm-dlg-field select {
    width: 100%;
    padding: 8px 10px;
    background: #151c22;
    border: 1px solid #2a3640;
    border-radius: 4px;
    color: #d0d6dc;
    font-size: 13px;
    font-family: inherit;
    box-sizing: border-box;
    transition: border-color 0.15s;
}

.fm-dlg-field input:focus,
.fm-dlg-field select:focus {
    outline: none;
    border-color: #4a9eff;
}

.fm-dlg-field select {
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%237a8a96'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 10px center;
    padding-right: 28px;
}

.fm-ac-wrap {
    position: relative;
}

.fm-ac-list {
    display: none;
    position: absolute;
    left: 0;
    right: 0;
    top: 100%;
    max-height: 200px;
    overflow-y: auto;
    background: #151c22;
    border: 1px solid #2a3640;
    border-top: none;
    border-radius: 0 0 4px 4px;
    z-index: 10;
}

.fm-ac-item {
    padding: 7px 10px;
    font-size: 13px;
    color: #d0d6dc;
    cursor: pointer;
}

.fm-ac-item:hover {
    background: #1e2830;
}

/* Recently picked values for an autocomplete field. Sits between the field
   label and its input: one click fills the input below. */
.fm-ac-recent-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 5px;
    margin-bottom: 6px;
}

.fm-ac-recent-tag {
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.4px;
    text-transform: uppercase;
    color: #62727e;
}

.fm-ac-recent-chip {
    max-width: 100%;
    padding: 3px 9px;
    background: transparent;
    border: 1px solid #2a3640;
    border-radius: 10px;
    color: #8a9aa6;
    font-family: inherit;
    font-size: 11px;
    line-height: 1.5;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    cursor: pointer;
    transition:
        border-color 0.15s,
        color 0.15s,
        background 0.15s;
}

.fm-ac-recent-chip:hover {
    border-color: #3d5265;
    color: #d0d6dc;
}

.fm-ac-recent-chip:focus-visible {
    outline: none;
    border-color: #4a9eff;
    color: #d0d6dc;
}

/* Applied: the field below now holds this club. Borrows the confirm-button
   green so "chosen" reads the same everywhere in the dialog. */
.fm-ac-recent-chip[aria-pressed="true"] {
    background: rgba(42, 125, 63, 0.18);
    border-color: #2f6d45;
    color: #cfe6d6;
}

@media (prefers-reduced-motion: reduce) {
    .fm-ac-recent-chip {
        transition: none;
    }
}

.fm-dlg-actions {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    padding: 12px 20px 16px;
}

.fm-dlg-btn {
    padding: 8px 18px;
    border-radius: 4px;
    font-size: 12px;
    font-weight: 600;
    font-family: inherit;
    cursor: pointer;
    border: 1px solid #2a3640;
    transition:
        background 0.15s,
        color 0.15s;
}

.fm-dlg-cancel {
    background: transparent;
    color: #7a8a96;
}

.fm-dlg-cancel:hover {
    background: rgba(255, 255, 255, 0.05);
    color: #a0aab4;
}

.fm-dlg-confirm {
    background: #2a7d3f;
    color: #e0ffe8;
    border-color: #2a7d3f;
}

.fm-dlg-confirm:hover {
    background: #339944;
}

/* ============================================
   FM SEARCH PAGE
   ============================================ */

.fm-search-page .fm-search-panel {
    padding-bottom: 14px;
}

.fm-search-wrap {
    padding: 18px 14px 4px;
    position: relative;
}

.fm-search-box {
    position: relative;
    display: flex;
    align-items: center;
    width: 100%;
    background: #0f171d;
    border: 1px solid #2a3a47;
    border-radius: 6px;
    transition:
        border-color 0.15s,
        box-shadow 0.15s;
}

.fm-search-box:focus-within {
    border-color: #4a9d5b;
    box-shadow: 0 0 0 3px rgba(74, 157, 91, 0.12);
}

.fm-search-icon {
    position: absolute;
    left: 14px;
    top: 50%;
    transform: translateY(-50%);
    color: #546a78;
    font-size: 14px;
    pointer-events: none;
}

.fm-search-input {
    flex: 1;
    width: 100%;
    background: transparent;
    border: 0;
    outline: none;
    color: #d6dee4;
    font-size: 15px;
    font-family: inherit;
    padding: 12px 40px 12px 40px;
    letter-spacing: 0.2px;
}

.fm-search-input::placeholder {
    color: #4e5a63;
}

.fm-search-clear {
    position: absolute;
    right: 8px;
    top: 50%;
    transform: translateY(-50%);
    background: transparent;
    border: 0;
    color: #546a78;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition:
        background 0.15s,
        color 0.15s;
}

.fm-search-clear:hover {
    background: rgba(255, 255, 255, 0.05);
    color: #a0aab4;
}

.fm-search-results {
    margin-top: 12px;
    background: #0f171d;
    border: 1px solid #263340;
    border-radius: 6px;
    overflow: hidden;
}

.fm-search-hint {
    padding: 14px;
    color: #546a78;
    font-size: 13px;
    text-align: center;
}

.fm-search-hint[hidden] {
    display: none;
}

.fm-search-groups {
    display: flex;
    flex-direction: column;
}

.fm-search-group + .fm-search-group {
    border-top: 1px solid #1d2831;
}

.fm-search-group-title {
    padding: 8px 14px;
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1.2px;
    color: #546a78;
    background: linear-gradient(180deg, #18222a 0%, #141c22 100%);
    border-bottom: 1px solid #1d2831;
}

.fm-search-list {
    display: flex;
    flex-direction: column;
}

.fm-search-item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 9px 14px;
    color: #d6dee4;
    text-decoration: none;
    border-bottom: 1px solid #141c22;
    transition: background 0.12s;
}

.fm-search-item:last-child {
    border-bottom: 0;
}

.fm-search-item:hover {
    background: rgba(74, 157, 91, 0.08);
    color: #e6f2ea;
}

.fm-search-icon-slot {
    width: 28px;
    height: 28px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.fm-search-icon-slot .flag {
    display: inline-block;
    vertical-align: middle;
}

.fm-search-avatar {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    overflow: hidden;
    background: #1c2830;
    border: 1px solid #263340;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.fm-search-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top center;
}

.fm-search-item-player {
    padding: 10px 14px;
    gap: 14px;
}

.fm-search-item-player .fm-search-avatar {
    width: 56px;
    height: 56px;
    border-radius: 6px;
    background: linear-gradient(180deg, #1c2830 0%, #141c22 100%);
}

.fm-search-item-player .fm-search-avatar-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top center;
}

.fm-search-item-player .fm-search-name {
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 0.1px;
}

.fm-search-item-player .fm-search-sub {
    font-size: 12px;
    margin-top: 2px;
}

.fm-search-item-player .fm-search-flag .flag {
    transform: scale(1.15);
    transform-origin: right center;
}

.fm-search-main {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    line-height: 1.3;
}

.fm-search-name {
    font-size: 13px;
    font-weight: 600;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.fm-search-sub {
    font-size: 11px;
    color: #546a78;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.fm-search-flag {
    flex-shrink: 0;
    display: flex;
    align-items: center;
}

@media (max-width: 768px) {
    .fm-search-input {
        font-size: 14px;
        padding: 10px 36px 10px 38px;
    }
}

/* ============================================
   SCOUTING TAB
   ============================================ */

.sc-subtabs {
    display: flex;
    flex-wrap: wrap;
    gap: 2px;
    background: linear-gradient(180deg, #1c2830 0%, #192228 100%);
    border: 1px solid #263340;
    border-radius: 4px;
    padding: 4px;
    margin-bottom: 12px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
}

.sc-subtab {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 14px;
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.9px;
    color: #6a7a86;
    background: transparent;
    border: none;
    border-radius: 3px;
    cursor: pointer;
    white-space: nowrap;
    text-decoration: none !important;
    transition:
        color 0.15s,
        background 0.15s;
    font-family: inherit;
}

.sc-subtab:hover {
    color: #c8d6e0;
    background: rgba(255, 255, 255, 0.04);
}

.sc-subtab.active {
    color: #fff;
    background: linear-gradient(180deg, #2a3a47 0%, #213038 100%);
}

.sc-subtab-icon {
    font-size: 11px;
    opacity: 0.85;
}

.sc-subtab-count {
    display: inline-flex;
    min-width: 18px;
    height: 16px;
    padding: 0 5px;
    align-items: center;
    justify-content: center;
    font-size: 9px;
    font-weight: 700;
    color: #8a949c;
    background: rgba(255, 255, 255, 0.06);
    border-radius: 8px;
    font-variant-numeric: tabular-nums;
    letter-spacing: 0;
}

.sc-subtab.active .sc-subtab-count {
    color: var(--tab-fg-active, #0e1f12);
    background: var(--header-bg, #6db974);
}

.sc-tab-panel {
    display: none;
}

.sc-tab-panel.active {
    display: block;
}

.sc-tab-panel > .fm-panel + .fm-panel,
.sc-tab-panel > .fm-panel + .fm-transfers-row,
.sc-tab-panel > .fm-transfers-row + .fm-panel,
.sc-tab-panel > .fm-transfers-row + .fm-transfers-row {
    margin-top: 10px;
}

.sc-summary {
    display: grid;
    grid-template-columns: repeat(8, minmax(0, 1fr));
    gap: 1px;
    background: #263340;
    padding: 1px;
}

.sc-stat {
    background: linear-gradient(180deg, #1c2830 0%, #192228 100%);
    padding: 12px 14px;
    display: flex;
    flex-direction: column;
    gap: 5px;
    min-width: 0;
    position: relative;
}

.sc-stat::before {
    content: "";
    position: absolute;
    left: 0;
    top: 12px;
    bottom: 12px;
    width: 2px;
    background: #4a9d5b;
    opacity: 0.55;
}

.sc-stat-label {
    font-size: 9px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.6px;
    color: #6a7a86;
    line-height: 1.2;
}

.sc-stat-value {
    font-size: 20px;
    font-weight: 700;
    color: #d8dee4;
    line-height: 1.1;
    font-variant-numeric: tabular-nums;
}

.sc-table-wrap {
    overflow-x: auto;
}

.sc-table {
    font-size: 12px;
}

.sc-table thead th {
    white-space: nowrap;
    padding: 7px 8px;
    font-size: 9px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.sc-table tbody td {
    padding: 6px 8px;
    vertical-align: middle;
}

.sc-table .sc-num {
    text-align: right;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
    color: #c8d2da;
}

.sc-table .sc-name {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 180px;
    font-weight: 500;
}

.sc-table .sc-reason {
    color: #7a8690;
    font-size: 11px;
    max-width: 220px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.sc-table .sc-role-profile {
    font-size: 11px;
    color: #8a96a0;
    white-space: nowrap;
}

.sc-table .sc-regions,
.sc-table .sc-risks {
    display: flex;
    flex-wrap: wrap;
    gap: 3px;
    max-width: 180px;
}

.sc-table-monitoring th,
.sc-table-monitoring td {
    padding: 5px 6px;
}

.sc-badge {
    display: inline-block;
    padding: 2px 7px;
    font-size: 10px;
    font-weight: 600;
    border-radius: 3px;
    letter-spacing: 0.3px;
    background: rgba(255, 255, 255, 0.06);
    color: #b0bac2;
    white-space: nowrap;
    line-height: 1.5;
    border: 1px solid transparent;
}

.sc-badge-region {
    background: rgba(70, 132, 196, 0.16);
    color: #8fb8e0;
    border-color: rgba(70, 132, 196, 0.28);
}

.sc-badge-risk {
    background: rgba(193, 76, 76, 0.16);
    color: #e89090;
    border-color: rgba(193, 76, 76, 0.32);
}

.sc-badge-vote,
.sc-badge-decision {
    background: rgba(212, 168, 67, 0.14);
    color: #e8c270;
    border-color: rgba(212, 168, 67, 0.26);
}

.sc-badge-completed {
    background: rgba(74, 157, 91, 0.18);
    color: #7fd28b;
    border-color: rgba(74, 157, 91, 0.32);
}

.sc-badge-active-state {
    background: rgba(212, 168, 67, 0.14);
    color: #e8c270;
    border-color: rgba(212, 168, 67, 0.26);
}

.sc-badge-shadow {
    background: rgba(140, 110, 196, 0.16);
    color: #b89fe6;
    border-color: rgba(140, 110, 196, 0.3);
}

.sc-badge-active {
    background: rgba(74, 157, 91, 0.18);
    color: #7fd28b;
    border-color: rgba(74, 157, 91, 0.32);
}

.sc-badge-board-approved {
    background: rgba(74, 157, 91, 0.22);
    color: #8ddc99;
    border-color: rgba(74, 157, 91, 0.4);
}

.sc-badge-board-vetoed {
    background: rgba(193, 76, 76, 0.18);
    color: #ec9090;
    border-color: rgba(193, 76, 76, 0.36);
}

/* Status / decision / vote / recommendation / priority hue tints */
.sc-badge-monitoring_status_active,
.sc-badge-request_status_scouting_active {
    background: rgba(74, 157, 91, 0.14);
    color: #7fd28b;
    border-color: rgba(74, 157, 91, 0.28);
}

.sc-badge-monitoring_status_paused {
    background: rgba(150, 150, 150, 0.1);
    color: #a0a8b0;
    border-color: rgba(150, 150, 150, 0.22);
}

.sc-badge-monitoring_status_report_ready {
    background: rgba(212, 168, 67, 0.18);
    color: #f0cf7c;
    border-color: rgba(212, 168, 67, 0.36);
}

.sc-badge-monitoring_status_shortlisted,
.sc-badge-request_status_shortlisted {
    background: rgba(74, 157, 91, 0.2);
    color: #8ddc99;
    border-color: rgba(74, 157, 91, 0.36);
}

.sc-badge-monitoring_status_negotiating,
.sc-badge-request_status_negotiating {
    background: rgba(70, 132, 196, 0.18);
    color: #93bce4;
    border-color: rgba(70, 132, 196, 0.34);
}

.sc-badge-monitoring_status_signed,
.sc-badge-request_status_fulfilled {
    background: rgba(74, 157, 91, 0.26);
    color: #95e0a1;
    border-color: rgba(74, 157, 91, 0.46);
}

.sc-badge-monitoring_status_lost,
.sc-badge-request_status_abandoned {
    background: rgba(120, 100, 90, 0.18);
    color: #b09a90;
    border-color: rgba(120, 100, 90, 0.32);
}

.sc-badge-monitoring_status_rejected,
.sc-badge-decision_reject {
    background: rgba(193, 76, 76, 0.18);
    color: #e89090;
    border-color: rgba(193, 76, 76, 0.34);
}

.sc-badge-recommendation_strong_buy {
    background: rgba(74, 157, 91, 0.3);
    color: #9cebab;
    border-color: rgba(74, 157, 91, 0.55);
    font-weight: 700;
}

.sc-badge-recommendation_buy {
    background: rgba(74, 157, 91, 0.18);
    color: #7fd28b;
    border-color: rgba(74, 157, 91, 0.34);
}

.sc-badge-recommendation_consider {
    background: rgba(212, 168, 67, 0.14);
    color: #e8c270;
    border-color: rgba(212, 168, 67, 0.26);
}

.sc-badge-recommendation_pass {
    background: rgba(193, 76, 76, 0.14);
    color: #d88080;
    border-color: rgba(193, 76, 76, 0.28);
}

.sc-badge-decision_promote_to_shortlist,
.sc-badge-decision_start_negotiation {
    background: rgba(74, 157, 91, 0.2);
    color: #8ddc99;
    border-color: rgba(74, 157, 91, 0.36);
}

.sc-badge-decision_keep_monitoring {
    background: rgba(74, 157, 91, 0.12);
    color: #7fd28b;
    border-color: rgba(74, 157, 91, 0.24);
}

.sc-badge-decision_ask_board_approval {
    background: rgba(70, 132, 196, 0.16);
    color: #93bce4;
    border-color: rgba(70, 132, 196, 0.3);
}

.sc-badge-scout_vote_strong_approve {
    background: rgba(74, 157, 91, 0.3);
    color: #9cebab;
    border-color: rgba(74, 157, 91, 0.55);
    font-weight: 700;
}

.sc-badge-scout_vote_approve {
    background: rgba(74, 157, 91, 0.18);
    color: #7fd28b;
    border-color: rgba(74, 157, 91, 0.34);
}

.sc-badge-scout_vote_monitor {
    background: rgba(74, 157, 91, 0.1);
    color: #7fd28b;
    border-color: rgba(74, 157, 91, 0.22);
}

.sc-badge-scout_vote_needs_more_info {
    background: rgba(212, 168, 67, 0.14);
    color: #e8c270;
    border-color: rgba(212, 168, 67, 0.26);
}

.sc-badge-scout_vote_reject {
    background: rgba(193, 76, 76, 0.18);
    color: #e89090;
    border-color: rgba(193, 76, 76, 0.34);
}

.sc-badge-request_priority_critical {
    background: rgba(193, 76, 76, 0.22);
    color: #ec9090;
    border-color: rgba(193, 76, 76, 0.42);
    font-weight: 700;
}

.sc-badge-request_priority_important {
    background: rgba(212, 168, 67, 0.18);
    color: #f0cf7c;
    border-color: rgba(212, 168, 67, 0.36);
}

.sc-badge-request_priority_optional {
    background: rgba(150, 160, 170, 0.1);
    color: #a0aab4;
    border-color: rgba(150, 160, 170, 0.22);
}

.sc-badge-request_status_pending {
    background: rgba(212, 168, 67, 0.12);
    color: #d8b870;
    border-color: rgba(212, 168, 67, 0.24);
}

/* Recruitment meeting blocks */
.sc-meeting {
    border-top: 1px solid #263340;
    padding: 12px 14px 14px;
    background: linear-gradient(
        180deg,
        rgba(255, 255, 255, 0.012) 0%,
        rgba(255, 255, 255, 0) 100%
    );
}

.sc-meeting:first-child {
    border-top: none;
}

.sc-meeting-head {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 12px;
    margin-bottom: 8px;
    padding-bottom: 8px;
    border-bottom: 1px dashed #263340;
}

.sc-meeting-date {
    font-size: 13px;
    font-weight: 700;
    color: #d8dee4;
    letter-spacing: 0.2px;
}

.sc-meeting-id {
    font-size: 11px;
    color: #6a7a86;
    font-variant-numeric: tabular-nums;
    font-weight: 600;
}

.sc-meeting-agenda {
    font-size: 11px;
    color: #8a96a0;
}

.sc-meeting-participants {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
    align-items: center;
    font-size: 11px;
    color: #8a96a0;
    margin-bottom: 8px;
}

.sc-meeting-label {
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.6px;
    font-weight: 700;
    color: #6a7a86;
    margin-right: 4px;
}

.sc-pill {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 3px 9px;
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid #263340;
    color: #c8d2da;
    font-size: 11px;
    font-weight: 500;
    border-radius: 11px;
    text-decoration: none;
    transition:
        background 0.12s,
        border-color 0.12s;
}

.sc-pill:hover {
    background: rgba(255, 255, 255, 0.08);
    border-color: #3a4a58;
    text-decoration: none;
    color: #fff;
}

.sc-pill-role {
    font-size: 9px;
    color: #6a8a5a;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    font-weight: 700;
    color: #7fb088;
}

.sc-meeting-section {
    margin-top: 10px;
}

.sc-meeting-section-head {
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.8px;
    color: #6a7a86;
    margin-bottom: 6px;
    padding-left: 8px;
    border-left: 2px solid #4a9d5b;
}

.sc-meeting-table {
    font-size: 11px;
}

@media (max-width: 1100px) {
    .sc-summary {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

@media (max-width: 600px) {
    .sc-summary {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .sc-subtab {
        padding: 7px 10px;
        font-size: 9px;
        letter-spacing: 0.5px;
    }
}

/* ============================================
   FM AWARDS — league awards page
   ============================================ */

.fm-aw-feature {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 14px;
    border-bottom: 1px solid #263340;
}

.fm-aw-feature-photo {
    width: 64px;
    height: 80px;
    border-radius: 4px;
    overflow: hidden;
    background: #1a2530;
    border: 1px solid #2a3a48;
    flex-shrink: 0;
    display: block;
}

.fm-aw-feature-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 22%;
}

.fm-aw-feature-id {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.fm-aw-feature-name {
    font-size: 14px;
    font-weight: 600;
    color: #d8dee5;
    line-height: 1.15;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fm-aw-feature-name:hover {
    color: #4a9eff;
}

.fm-aw-feature-club {
    font-size: 11px;
    color: #7b8893;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fm-aw-feature-club:hover {
    color: #4a9eff;
}

.fm-aw-stats-table {
    width: 100%;
    border-collapse: collapse;
}

.fm-aw-stats-table tr {
    border-bottom: 1px solid #1f2a32;
}

.fm-aw-stats-table tr:last-child {
    border-bottom: none;
}

.fm-aw-stats-table td {
    padding: 7px 14px;
    font-size: 12px;
    color: #8a949c;
}

.fm-aw-stats-table td.fm-aw-val {
    text-align: right;
    color: #d0d6dc;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
}

.fm-aw-stats-table td.fm-aw-val-accent {
    color: #d4a341;
}

.fm-aw-subtabs {
    margin-bottom: 0;
}

.fm-aw-tab {
    padding: 16px 18px 18px;
}

.fm-aw-tab-grid {
    display: grid;
    grid-template-columns: minmax(280px, 360px) 1fr;
    gap: 18px;
    align-items: start;
}

@media (max-width: 900px) {
    .fm-aw-tab-grid {
        grid-template-columns: 1fr;
    }
}

.fm-aw-month-head {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 12px;
    padding: 10px 31px 12px;
}

.fm-aw-month-label {
    font-size: 13px;
    font-weight: 700;
    color: #d0d6dc;
    letter-spacing: 0.6px;
    text-transform: uppercase;
}

.fm-aw-month-count {
    font-size: 11px;
    font-weight: 600;
    color: #6b7580;
    text-transform: uppercase;
    letter-spacing: 0.6px;
    font-variant-numeric: tabular-nums;
}

.fm-aw-stat-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 18px;
    margin-top: 18px;
}

.fm-aw-stat-col {
    background: linear-gradient(180deg, #1a242c 0%, #161e25 100%);
    border: 1px solid #263340;
    border-radius: 4px;
    overflow: hidden;
}

@media (max-width: 1100px) {
    .fm-aw-stat-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 700px) {
    .fm-aw-stat-grid {
        grid-template-columns: 1fr;
    }
}

.fm-aw-tab-card,
.fm-aw-tab-pitch-wrap {
    background: linear-gradient(180deg, #1a242c 0%, #161e25 100%);
    border: 1px solid #263340;
    border-radius: 4px;
    overflow: hidden;
}

.fm-aw-tab-card-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 9px 14px;
    background: linear-gradient(180deg, #20292f 0%, #1b242a 100%);
    border-bottom: 1px solid #263340;
}

.fm-aw-tab-title {
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1.2px;
    color: #546a78;
}

.fm-aw-tab-date {
    font-size: 11px;
    font-weight: 600;
    color: #4e5a63;
}

.fm-aw-history-grid {
    display: grid;
    grid-template-columns: 1.2fr 1fr;
    gap: 18px;
}

@media (max-width: 900px) {
    .fm-aw-history-grid {
        grid-template-columns: 1fr;
    }
}

.fm-aw-history-col {
    background: linear-gradient(180deg, #1a242c 0%, #161e25 100%);
    border: 1px solid #263340;
    border-radius: 4px;
    overflow: hidden;
}

.fm-aw-totw-pitch {
    padding: 18px;
}

.fm-aw-totw-pitch .fm-pitch-surface {
    aspect-ratio: 0.78;
    width: 100%;
    max-width: 616px;
    margin: 0 auto;
}

.fm-aw-pitch-player {
    text-decoration: none;
    width: 64px;
    align-items: stretch;
    gap: 0;
}

.fm-aw-pitch-player .fm-pitch-player-dot {
    display: none;
}

.fm-aw-pitch-photo {
    position: relative;
    width: 70px;
    height: 88px;
    border-radius: 4px;
    overflow: hidden;
    background: #1a2530;
    border: 2px solid rgba(255, 255, 255, 0.75);
    box-shadow:
        0 0 14px rgba(74, 200, 90, 0.5),
        0 0 6px rgba(74, 200, 90, 0.3),
        0 3px 10px rgba(0, 0, 0, 0.5);
    transition:
        transform 0.18s,
        box-shadow 0.18s;
}

.fm-aw-pitch-player:hover .fm-aw-pitch-photo {
    transform: scale(1.08);
    box-shadow:
        0 0 20px rgba(74, 200, 90, 0.7),
        0 0 6px rgba(74, 200, 90, 0.45),
        0 6px 14px rgba(0, 0, 0, 0.6);
}

.fm-aw-pitch-player.pos-gk .fm-aw-pitch-photo {
    border-color: rgba(255, 230, 130, 0.9);
    box-shadow:
        0 0 14px rgba(232, 200, 48, 0.55),
        0 0 6px rgba(232, 200, 48, 0.3),
        0 3px 10px rgba(0, 0, 0, 0.5);
}

.fm-aw-pitch-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 22%;
}

.fm-aw-pitch-rating {
    position: absolute;
    bottom: 5px;
    left: 50%;
    transform: translateX(-50%);
    font-size: 12px;
    font-weight: 700;
    background: linear-gradient(180deg, #f1d271, #d4a341);
    color: #1a1308;
    padding: 1px 6px;
    border-radius: 2px;
    letter-spacing: 0.1px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.6);
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.fm-aw-pitch-label {
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%);
    margin-top: 5px;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 154px;
    pointer-events: auto;
}

.fm-aw-pitch-namerow {
    display: flex;
    flex-wrap: nowrap;
    align-items: baseline;
    justify-content: center;
    gap: 3px;
    max-width: 176px;
    overflow: hidden;
    text-decoration: none;
}

.fm-aw-pitch-name {
    font-size: 13px;
    font-weight: 700;
    color: #fff;
    letter-spacing: 0.2px;
    text-shadow:
        0 1px 3px rgba(0, 0, 0, 0.9),
        0 0 8px rgba(0, 0, 0, 0.6);
}

.fm-aw-pitch-name:hover {
    color: #f1d271;
}

.fm-aw-pitch-lastname,
.fm-aw-pitch-firstname {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.fm-aw-pitch-club {
    font-size: 10px;
    font-weight: 500;
    color: #d8dee5;
    letter-spacing: 0.2px;
    text-shadow:
        0 1px 2px rgba(0, 0, 0, 0.9),
        0 0 6px rgba(0, 0, 0, 0.5);
    white-space: nowrap;
    max-width: 154px;
    overflow: hidden;
    text-overflow: ellipsis;
    text-decoration: none;
}

.fm-aw-pitch-club:hover {
    color: #f1d271;
}

/* Awards 4-4-2: align lanes to common vertical columns
   so defender/mid/striker stack in straight lines, and lift each
   row ~1.5em so labels fit below every photo (incl. GK).
   Inner columns at 36/64 keep enough horizontal gap from the
   wings (10/90) so the wider name labels don't overlap.
   Scoped to .fm-aw-totw-pitch so the same .fm-aw-pitch-player photo
   styling can be reused in tactics with the default tactics
   position bands. */
.fm-aw-totw-pitch .fm-aw-pitch-player.pos-gk {
    left: 50%;
    bottom: 7%;
}
.fm-aw-totw-pitch .fm-aw-pitch-player.pos-dl {
    left: 12%;
    bottom: 28%;
}
.fm-aw-totw-pitch .fm-aw-pitch-player.pos-dcl {
    left: 36%;
    bottom: 28%;
}
.fm-aw-totw-pitch .fm-aw-pitch-player.pos-dcr {
    left: 64%;
    bottom: 28%;
}
.fm-aw-totw-pitch .fm-aw-pitch-player.pos-dr {
    left: 88%;
    bottom: 28%;
}
.fm-aw-totw-pitch .fm-aw-pitch-player.pos-ml {
    left: 12%;
    bottom: 53%;
}
.fm-aw-totw-pitch .fm-aw-pitch-player.pos-mcl {
    left: 36%;
    bottom: 53%;
}
.fm-aw-totw-pitch .fm-aw-pitch-player.pos-mcr {
    left: 64%;
    bottom: 53%;
}
.fm-aw-totw-pitch .fm-aw-pitch-player.pos-mr {
    left: 88%;
    bottom: 53%;
}
.fm-aw-totw-pitch .fm-aw-pitch-player.pos-stl {
    left: 36%;
    bottom: 77%;
}
.fm-aw-totw-pitch .fm-aw-pitch-player.pos-str {
    left: 64%;
    bottom: 77%;
}

/* Tactics pitch: same photo + font size and aspect (0.78, max 616)
   as the awards Team-of-the-Week so the field reads identically
   across both pages. Label width stays narrower than awards (no club
   row, single team) so the label fits within the tightest column
   gap (17% in 3-5-2, 1-3-3-3). Formations with 5+ vertical bands
   (4-2-3-1, diamond, 1-3-3-3) have row gaps of 13-14% × 790 ≈ 103px
   which is just under the photo+label height — minor overlap there
   is accepted as a trade for matching the awards proportions. */
.fm-tac-pitch {
    padding: 16px;
}

.fm-tac-pitch .fm-pitch-surface {
    aspect-ratio: 0.78;
    width: 100%;
    max-width: 616px;
    margin: 0 auto;
}

.fm-tac-pitch .fm-aw-pitch-player {
    width: 64px;
}

.fm-tac-pitch .fm-aw-pitch-photo {
    width: 70px;
    height: 88px;
}

.fm-tac-pitch .fm-aw-pitch-rating {
    font-size: 12px;
    padding: 1px 6px;
    bottom: 5px;
}

/* Recently-used shapes strip below the pitch. Shapes that match the
   persistent plan render in the muted base colour; shapes that differ
   (in-match shift, e.g. chase / protect) render in the accent colour
   so the user can spot them at a glance. */
.fm-tac-recent {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 18px 14px;
    flex-wrap: wrap;
}

.fm-tac-recent-label {
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: #546a78;
}

.fm-tac-recent-list {
    display: flex;
    list-style: none;
    margin: 0;
    padding: 0;
    gap: 8px;
    flex-wrap: wrap;
}

.fm-tac-recent-item {
    display: inline-flex;
    align-items: baseline;
    gap: 6px;
    padding: 4px 8px;
    background: #1a242c;
    border: 1px solid #263340;
    border-radius: 3px;
    font-size: 11px;
}

.fm-tac-recent-item.fm-tac-recent-shift {
    border-color: #4a3322;
    background: #221b14;
}

.fm-tac-recent-date {
    color: #6b7580;
    font-size: 10px;
}

.fm-tac-recent-shape {
    color: #d0d6dc;
    font-weight: 600;
}

.fm-tac-recent-item.fm-tac-recent-shift .fm-tac-recent-shape {
    color: #d4a341;
}

.fm-tac-recent-opp {
    color: #6b7580;
    font-size: 10px;
}

.fm-tac-recent-shift-min {
    color: #d4a341;
    font-size: 10px;
    font-weight: 600;
}

.fm-tac-pitch .fm-aw-pitch-label {
    width: 100px;
    margin-top: 5px;
}

.fm-tac-pitch .fm-aw-pitch-namerow {
    max-width: 100px;
}

.fm-tac-pitch .fm-aw-pitch-name {
    font-size: 13px;
}

@media (max-width: 767.98px) {
    .fm-tac-pitch {
        padding: 12px 6px;
    }

    .fm-tac-pitch .fm-aw-pitch-player {
        width: 48px;
    }

    .fm-tac-pitch .fm-aw-pitch-photo {
        width: 52px;
        height: 64px;
    }

    .fm-tac-pitch .fm-aw-pitch-rating {
        font-size: 10px;
        padding: 0 4px;
        bottom: 3px;
    }

    .fm-tac-pitch .fm-aw-pitch-label {
        width: 76px;
        margin-top: 3px;
    }

    .fm-tac-pitch .fm-aw-pitch-namerow {
        max-width: 76px;
    }

    .fm-tac-pitch .fm-aw-pitch-name {
        font-size: 10px;
    }
}

/* On the smallest phones the row gap (~10% of pitch height) drops
   below photo+label height; drop the label and rely on the title
   attribute for the player name. */
@media (max-width: 575.98px) {
    .fm-tac-pitch .fm-aw-pitch-label {
        display: none;
    }
}

/* ============================================
   TACTICS PAGE — editable settings, player
   instructions, set pieces
   ============================================ */

/* Role chip under a pitch player's name, once a slot has an override. */
.fm-tac-role-chip {
    display: block;
    margin-top: 1px;
    font-size: 9px;
    font-weight: 700;
    color: #4a9d5b;
    text-transform: uppercase;
    letter-spacing: 0.3px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.fm-tac-settings-body {
    padding: 14px;
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.fm-tac-field {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.fm-tac-field-label {
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.8px;
    color: #546a78;
}

/* Clone of .fm-season-select, generalised for any tactics dropdown. */
.fm-tac-select,
.fm-tac-role-select {
    appearance: none;
    -webkit-appearance: none;
    width: 100%;
    background: #1a2530
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='5'%3E%3Cpath d='M0 0l4 5 4-5z' fill='%23546a78'/%3E%3C/svg%3E")
        no-repeat right 10px center;
    border: 1px solid #263340;
    border-radius: 3px;
    color: #c8d6e0;
    font-size: 12px;
    font-weight: 500;
    padding: 7px 26px 7px 10px;
    cursor: pointer;
    outline: none;
}

.fm-tac-select:hover,
.fm-tac-role-select:hover {
    border-color: #3a4f5e;
}

.fm-tac-select:focus,
.fm-tac-role-select:focus {
    border-color: #4a9d5b;
}

/* Segmented control (mentality / tempo / width / passing style). */
.fm-tac-seg {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
}

.fm-tac-seg-btn {
    flex: 1 1 auto;
    background: #1a2530;
    border: 1px solid #263340;
    border-radius: 3px;
    color: #8a99a6;
    font-size: 11px;
    font-weight: 600;
    padding: 7px 8px;
    cursor: pointer;
    transition: background 0.1s, color 0.1s, border-color 0.1s;
    white-space: nowrap;
}

.fm-tac-seg-btn:hover {
    border-color: #3a4f5e;
    color: #c8d6e0;
}

.fm-tac-seg-btn.active {
    background: #234a2e;
    border-color: #4a9d5b;
    color: #7cd98c;
}

.fm-tac-check {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 12px;
    font-weight: 600;
    color: #c8d6e0;
    cursor: pointer;
    user-select: none;
}

.fm-tac-check input {
    width: 15px;
    height: 15px;
    accent-color: #4a9d5b;
    cursor: pointer;
}

.fm-tac-hint {
    margin: -8px 0 0;
    font-size: 11px;
    color: #546a78;
    line-height: 1.4;
}

.fm-tac-save-btn {
    align-self: flex-start;
    background: #234a2e;
    border: 1px solid #4a9d5b;
    border-radius: 3px;
    color: #7cd98c;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.6px;
    padding: 8px 18px;
    cursor: pointer;
    transition: background 0.1s;
}

.fm-tac-save-btn:hover {
    background: #2c5c39;
}

.fm-tac-save-btn:disabled {
    opacity: 0.5;
    cursor: default;
}

/* Little green checkmark that fades in next to a panel head / row after
   a successful auto-saved change (role overrides). */
.fm-tac-saved-flag {
    display: inline-block;
    min-width: 14px;
    font-size: 12px;
    font-weight: 700;
    color: #4a9d5b;
    opacity: 0;
    transition: opacity 0.2s;
}

.fm-tac-saved-flag.show {
    opacity: 1;
}

/* Player instructions list — reuses .fm-tactics-list / .fm-tactic-row
   (defined above for the legacy formation list) but adds the role
   select + saved flag as trailing columns. */
.fm-tactics-list .fm-tactic-row {
    gap: 10px;
}

.fm-tactics-list .fm-tactic-name {
    flex: 1 1 auto;
}

.fm-tactics-list .fm-tac-role-select {
    width: 180px;
    flex: 0 0 auto;
    padding: 5px 24px 5px 8px;
    font-size: 11px;
}

.fm-tactics-list .fm-tac-saved-flag {
    flex: 0 0 auto;
}

.fm-tac-setpieces-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 12px 14px;
    align-items: end;
}

.fm-tac-setpieces-grid .fm-tac-save-btn {
    grid-column: 1 / -1;
}

@media (max-width: 767.98px) {
    .fm-tactics-list .fm-tactic-row {
        flex-wrap: wrap;
    }

    .fm-tactics-list .fm-tac-role-select {
        width: 100%;
        order: 3;
    }
}

/* Small screens: the column gap (24% of pitch width) shrinks below
   the default 154px label width, and the row gap (~21% of pitch
   height) shrinks below photo+label height. Tighten both dimensions
   so labels fit between adjacent columns AND between rows. */
@media (max-width: 767.98px) {
    .fm-aw-totw-pitch {
        padding: 12px 6px;
    }

    .fm-aw-pitch-player {
        width: 44px;
    }

    .fm-aw-pitch-photo {
        width: 48px;
        height: 56px;
    }

    .fm-aw-pitch-rating {
        font-size: 10px;
        padding: 0 4px;
        bottom: 3px;
    }

    .fm-aw-pitch-label {
        width: 76px;
        margin-top: 3px;
    }

    .fm-aw-pitch-namerow {
        max-width: 76px;
        gap: 2px;
    }

    .fm-aw-pitch-name {
        font-size: 10px;
    }

    .fm-aw-pitch-firstname {
        display: none;
    }

    .fm-aw-pitch-club {
        font-size: 9px;
        max-width: 76px;
    }
}

.fm-aw-history-table,
.fm-aw-season-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 12px;
}

.fm-aw-history-table thead th {
    padding: 8px 10px;
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.6px;
    color: #546a78;
    background: #1a2530;
    border-bottom: 1px solid #263340;
    text-align: left;
}

.fm-aw-history-table tbody td,
.fm-aw-season-table tbody td {
    padding: 6px 10px;
    border-bottom: 1px solid #1f2a32;
    color: #c0c8d0;
    vertical-align: middle;
}

.fm-aw-history-table tbody tr:last-child td,
.fm-aw-season-table tbody tr:last-child td {
    border-bottom: none;
}

.fm-aw-history-table tbody tr:hover td,
.fm-aw-season-table tbody tr:hover td {
    background: #1f2a32;
}

.fm-aw-history-table .aw-name a,
.fm-aw-season-table .aw-name a {
    color: #d0d6dc;
    font-weight: 500;
}

.fm-aw-history-table .aw-name a:hover,
.fm-aw-season-table .aw-name a:hover {
    color: #4a9eff;
}

.fm-aw-history-table .aw-club a {
    color: #8a949c;
}

.fm-aw-history-table .aw-club a:hover {
    color: #4a9eff;
}

.fm-aw-history-table .aw-stat {
    width: 56px;
    text-align: center;
    font-variant-numeric: tabular-nums;
    color: #d0d6dc;
}

.fm-aw-history-table .aw-date {
    width: 100px;
    color: #8a949c;
    font-size: 11px;
}

.fm-aw-history-table th.aw-date {
    width: 100px;
}

.fm-aw-history-table th.aw-stat {
    text-align: center;
}

.aw-portrait {
    width: 36px;
    padding-left: 0 !important;
    padding-right: 4px !important;
}

.fm-aw-mini-portrait {
    display: block;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    overflow: hidden;
    background: #1a2530;
    border: 1px solid #2a3a48;
}

.fm-aw-mini-portrait img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 22%;
}

.fm-aw-row-sub {
    display: block;
    font-size: 10px;
    color: #6b7580;
    margin-top: 1px;
}

.fm-aw-row-sub a {
    color: #6b7580;
}

.fm-aw-row-sub a:hover {
    color: #4a9eff;
}

.fm-aw-kind {
    display: block;
    font-size: 9px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: #4a9d5b;
    margin-top: 2px;
}

.fm-aw-row-young .fm-aw-kind {
    color: #5cc99a;
}

.fm-aw-season-table .aw-key {
    width: 42%;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: #546a78;
    font-weight: 600;
}

/* ============================================
   FM PLAYER AWARDS — DASHBOARD
   ============================================
   Counter tiles for lifetime award totals, grouped by horizon (weekly /
   monthly / season / global). Each tile shows the count in oversized
   numerals so a glance picks up "five Team of the Week selections"
   without the eye chasing decoration. Tone colours echo the page's
   accent palette: weekly = neutral steel, monthly = warm gold, season
   = trophy bronze, global = champion gold-cyan. The `.young` modifier
   adds a teal underline so senior / young pairs read at a glance. */

.fm-awards-panel + .fm-awards-panel {
    margin-top: 10px;
}

/* League-grouped section header. The first block on the page is the
   player's current (most recent) league — this strip is the visual
   anchor that introduces a new league's cards + chart group. */
.fm-awards-league {
    display: block;
}

/* Career Summary hero — a single horizontal strip that sits above
   the per-league blocks and reads as the page-level "career totals"
   banner. Deliberately a different shape than the league rows below
   (gold left rail, trophy mark, big total + 4 category stat tiles)
   so the reader's eye latches on to it before scanning the league
   breakdown. */
.fm-awards-hero {
    display: flex;
    gap: 18px;
    padding: 16px 18px;
    margin-bottom: 18px;
    background: linear-gradient(135deg, #1e2c38 0%, #16222b 100%);
    border: 1px solid #2a3a4a;
    border-left: 3px solid #c89a3c;
    border-radius: 6px;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.025),
        0 1px 2px rgba(0, 0, 0, 0.2);
    align-items: stretch;
}

.fm-awards-hero-banner {
    display: flex;
    align-items: center;
    gap: 14px;
    padding-right: 18px;
    border-right: 1px solid #243140;
    flex-shrink: 0;
}

.fm-awards-hero-mark {
    width: 54px;
    height: 54px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 24px;
    color: #2a1f0a;
    border-radius: 50%;
    background: linear-gradient(180deg, #e6b95a 0%, #c89a3c 100%);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.3),
        0 2px 6px rgba(0, 0, 0, 0.35);
    flex-shrink: 0;
}

.fm-awards-hero-text {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.fm-awards-hero-total {
    font-size: 30px;
    font-weight: 700;
    line-height: 1;
    color: #f1e4c4;
    letter-spacing: -1px;
}

.fm-awards-hero-label {
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1.2px;
    color: #8a7a52;
}

.fm-awards-hero-stats {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 10px;
    flex: 1;
    min-width: 0;
}

.fm-awards-hero-stat {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
    padding: 8px 10px;
    background: rgba(255, 255, 255, 0.02);
    border: 1px solid #1f2a36;
    border-radius: 4px;
    text-align: center;
}

.fm-awards-hero-stat.is-empty {
    opacity: 0.4;
}

.fm-awards-hero-stat-icon {
    font-size: 13px;
    color: #5a6f80;
    line-height: 1;
}

.fm-awards-hero-stat-val {
    font-size: 22px;
    font-weight: 700;
    color: #e6ecf2;
    line-height: 1;
    letter-spacing: -0.5px;
}

.fm-awards-hero-stat-label {
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    color: #8a99a4;
    line-height: 1.2;
}

.fm-awards-hero-stat-weekly .fm-awards-hero-stat-icon {
    color: #7d92a3;
}
.fm-awards-hero-stat-monthly .fm-awards-hero-stat-icon {
    color: #d49a55;
}
.fm-awards-hero-stat-season .fm-awards-hero-stat-icon {
    color: #e6b95a;
}
.fm-awards-hero-stat-global .fm-awards-hero-stat-icon {
    color: #6fe0d0;
}

@media (max-width: 760px) {
    .fm-awards-hero {
        flex-direction: column;
        gap: 14px;
    }
    .fm-awards-hero-banner {
        border-right: none;
        border-bottom: 1px solid #243140;
        padding-right: 0;
        padding-bottom: 12px;
    }
    .fm-awards-hero-stats {
        grid-template-columns: repeat(2, 1fr);
    }
}

.fm-awards-league + .fm-awards-league {
    margin-top: 22px;
    padding-top: 18px;
    border-top: 1px solid #1f2a36;
}

.fm-awards-league-head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    margin: 4px 0 10px;
    padding: 0 2px;
}

.fm-awards-league-name {
    margin: 0;
    font-size: 14px;
    font-weight: 700;
    color: #d8dde2;
    letter-spacing: 0.3px;
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.fm-awards-league-name a {
    color: inherit;
    text-decoration: none;
    border-bottom: 1px dotted rgba(216, 221, 226, 0.25);
}

.fm-awards-league-name a:hover {
    color: #ffffff;
    border-bottom-color: rgba(216, 221, 226, 0.5);
}

/* Country prefix: flag + name set in a slightly muted weight so the
   league name still dominates the header. Border-bottom is removed
   for the country link to keep the flag-name pair visually compact. */
.fm-awards-league-country {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-weight: 600;
    color: #a8b5be;
    border-bottom: none !important;
}

.fm-awards-league-country:hover .fm-awards-league-country-name {
    color: #d8dde2;
}

.fm-awards-league-sep {
    color: #3d4f5c;
    font-weight: 400;
}

.fm-awards-league-total {
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    color: #51626d;
}

.fm-awards-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: 8px;
    padding: 12px;
}

.fm-award-card {
    position: relative;
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 14px;
    min-height: 78px;
    border: 1px solid #243140;
    border-left: 3px solid #3d4f5c;
    border-radius: 4px;
    background: linear-gradient(180deg, #1b262e 0%, #18222a 100%);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.015);
    transition:
        border-color 120ms ease,
        transform 120ms ease;
    color: inherit;
    text-decoration: none;
}

a.fm-award-card:hover,
.fm-award-card:hover {
    border-color: #2f3f50;
    transform: translateY(-1px);
}

a.fm-award-card:hover {
    text-decoration: none;
}

.fm-award-icon {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    border-radius: 50%;
    font-size: 18px;
    color: #1b262e;
    background: #5a6f80;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.18),
        0 1px 2px rgba(0, 0, 0, 0.25);
}

.fm-award-body {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
    min-width: 0;
    flex: 1;
}

.fm-award-count {
    font-size: 24px;
    font-weight: 700;
    line-height: 1;
    color: #e6ecf2;
    letter-spacing: -0.5px;
}

.fm-award-title {
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.3px;
    text-transform: uppercase;
    color: #8a99a4;
    line-height: 1.3;
    white-space: normal;
    overflow-wrap: anywhere;
    max-width: 100%;
}

/* Tone modifiers — set the rail colour on the left edge of each card
   and the icon medallion background. The senior / young split shares a
   tone family; `.young` overlays a subtle teal accent dot in the
   upper-right so paired tiles read as a set without doubling the rail
   palette. */
.fm-award-card.fm-award-weekly {
    border-left-color: #5a6f80;
}
.fm-award-card.fm-award-weekly .fm-award-icon {
    background: linear-gradient(180deg, #7d92a3 0%, #5a6f80 100%);
    color: #14202a;
}
.fm-award-card.fm-award-monthly {
    border-left-color: #b07d3b;
}
.fm-award-card.fm-award-monthly .fm-award-icon {
    background: linear-gradient(180deg, #d49a55 0%, #b07d3b 100%);
    color: #2a1a08;
}
.fm-award-card.fm-award-season {
    border-left-color: #c89a3c;
}
.fm-award-card.fm-award-season .fm-award-icon {
    background: linear-gradient(180deg, #e6b95a 0%, #c89a3c 100%);
    color: #2a1f0a;
}
.fm-award-card.fm-award-global {
    border-left-color: #4ec8b8;
}
.fm-award-card.fm-award-global .fm-award-icon {
    background: linear-gradient(180deg, #6fe0d0 0%, #4a9d8a 100%);
    color: #0a2622;
}

.fm-award-card.young .fm-award-icon::after {
    content: "";
    position: absolute;
    transform: translate(13px, -13px);
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #4ec8b8;
    box-shadow: 0 0 0 2px #1b262e;
}

.fm-award-card.young .fm-award-icon {
    position: relative;
}

/* Career-wide past-12-months chart panel — sits right under the
   Career Summary hero. The 2em bottom margin separates it from the
   per-league detail panels that follow. */
.fm-awards-chart-panel {
    margin-bottom: 1em;
}

/* Compact merged per-league panel — collapses what used to be four
   stacked sub-panels (Weekly / Monthly / Season / Global) into a single
   panel with thin inline group labels. The Career Summary hero at the
   top of the page is unaffected (different class scope) so the page
   reads as "big hero up top, dense reference grid below". */
.fm-awards-detail-panel {
    padding: 0;
}

.fm-awards-detail-body {
    display: flex;
    flex-direction: column;
}

.fm-awards-detail-group + .fm-awards-detail-group {
    border-top: 1px solid #1f2a36;
}

.fm-awards-detail-group-label {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 6px 12px;
    font-size: 9px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1.1px;
    color: #6c7d8a;
    background: linear-gradient(
        180deg,
        rgba(34, 46, 56, 0.55) 0%,
        rgba(28, 38, 46, 0.25) 100%
    );
    border-bottom: 1px solid #1f2a36;
}

.fm-awards-detail-group-label .fa {
    font-size: 10px;
    opacity: 0.7;
}

.fm-awards-detail-group-weekly .fm-awards-detail-group-label .fa {
    color: #7d92a3;
}
.fm-awards-detail-group-monthly .fm-awards-detail-group-label .fa {
    color: #d49a55;
}
.fm-awards-detail-group-season .fm-awards-detail-group-label .fa {
    color: #e6b95a;
}
.fm-awards-detail-group-global .fm-awards-detail-group-label .fa {
    color: #6fe0d0;
}

/* Compact card variant — roughly 3x smaller footprint than the default
   .fm-award-card. Used only inside the merged per-league detail panel;
   the hero-level layout still uses full-size tiles. */
.fm-awards-grid-compact {
    grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
    gap: 4px;
    padding: 6px 8px;
}

.fm-awards-grid-compact .fm-award-card {
    min-height: 32px;
    padding: 5px 9px;
    gap: 9px;
    border-left-width: 2px;
    border-radius: 3px;
}

.fm-awards-grid-compact .fm-award-icon {
    width: 24px;
    height: 24px;
    font-size: 11px;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.15),
        0 1px 1px rgba(0, 0, 0, 0.2);
}

.fm-awards-grid-compact .fm-award-body {
    flex-direction: row;
    align-items: center;
    gap: 8px;
}

.fm-awards-grid-compact .fm-award-count {
    font-size: 14px;
    font-weight: 700;
    line-height: 1;
    letter-spacing: -0.2px;
    color: #e6ecf2;
    min-width: 16px;
    text-align: center;
    flex-shrink: 0;
}

.fm-awards-grid-compact .fm-award-title {
    font-size: 9px;
    font-weight: 600;
    letter-spacing: 0.2px;
    line-height: 1.15;
    color: #7a8a96;
    flex: 1;
    min-width: 0;
}

.fm-awards-grid-compact .fm-award-card.young .fm-award-icon::after {
    transform: translate(8px, -8px);
    width: 5px;
    height: 5px;
    box-shadow: 0 0 0 1.5px #1b262e;
}

.fm-awards-empty {
    padding: 40px 20px;
    text-align: center;
    color: #51626d;
}

.fm-awards-empty-mark {
    width: 48px;
    height: 48px;
    margin: 0 auto 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #2f3f50;
    border-radius: 50%;
    color: #3d4f5c;
    font-size: 20px;
}

.fm-awards-empty-text {
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.4px;
    text-transform: uppercase;
}

/* ── Domestic cup — History tab ─────────────────────────────────────
   Roll of honour of past champions. Shares the awards hero (gold rail,
   trophy mark, stat tiles) but only carries two tiles, so the stat grid
   is constrained to two columns rather than the awards page's four. */
.fm-cup-history-stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    max-width: 360px;
}

.fm-cup-roll {
    display: flex;
    flex-direction: column;
}

.fm-cup-roll-row {
    display: grid;
    grid-template-columns: 92px 1fr 1fr;
    align-items: center;
    gap: 14px;
    padding: 11px 14px;
}

.fm-cup-roll-row + .fm-cup-roll-row {
    border-top: 1px solid #1f2a36;
}

.fm-cup-roll-row:hover {
    background: rgba(255, 255, 255, 0.015);
}

.fm-cup-roll-season {
    font-size: 13px;
    font-weight: 700;
    color: #8a7a52;
    letter-spacing: 0.4px;
}

.fm-cup-roll-champion {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    font-weight: 700;
    color: #f1e4c4;
    min-width: 0;
}

.fm-cup-roll-crown {
    color: #e6b95a;
    font-size: 12px;
    flex-shrink: 0;
}

.fm-cup-roll-champion a {
    color: inherit;
    text-decoration: none;
    border-bottom: 1px dotted rgba(241, 228, 196, 0.3);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fm-cup-roll-champion a:hover {
    color: #ffffff;
}

.fm-cup-roll-runner {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    color: #a8b5be;
    min-width: 0;
}

.fm-cup-roll-runner-label {
    font-size: 10px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: #5a6f80;
    flex-shrink: 0;
}

.fm-cup-roll-runner a {
    color: inherit;
    text-decoration: none;
    border-bottom: 1px dotted rgba(168, 181, 190, 0.25);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fm-cup-roll-runner a:hover {
    color: #d8dde2;
}

@media (max-width: 640px) {
    .fm-cup-roll-row {
        grid-template-columns: 64px 1fr;
        row-gap: 4px;
    }
    .fm-cup-roll-runner {
        grid-column: 2;
    }
}

/* ── Awards past-12-months chart ────────────────────────────────────
   CSS-only bar chart: each column is a percentage-height fill inside
   a fixed-height track. No JS — the server precomputes `height_pct`
   against the largest month in the window. The chart stretches to
   fill the panel width; bar fill colour comes from the club's header
   colour (inline style) so the chart matches the player's club. */
.fm-awards-chart {
    display: flex;
    align-items: flex-end;
    gap: 6px;
    padding: 24px 16px 14px;
    min-height: 200px;
    width: 100%;
}

.fm-awards-bar-col {
    flex: 1 1 0;
    min-width: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
}

.fm-awards-bar-track {
    position: relative;
    width: 100%;
    height: 150px;
    display: flex;
    align-items: flex-end;
    background: linear-gradient(
        180deg,
        transparent 0%,
        rgba(36, 49, 64, 0.4) 100%
    );
    border-radius: 3px 3px 0 0;
    /* `overflow: visible` so the count label above each bar isn't
       clipped horizontally on narrow bars or vertically on peak bars
       that fill the entire track height. */
    overflow: visible;
}

.fm-awards-bar-fill {
    position: relative;
    width: 100%;
    min-height: 4px;
    border-radius: 3px 3px 0 0;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.2),
        0 0 8px rgba(0, 0, 0, 0.25);
    transition: filter 120ms ease;
}

.fm-awards-bar-col:hover .fm-awards-bar-fill {
    filter: brightness(1.15);
}

.fm-awards-bar-value {
    position: absolute;
    top: -16px;
    left: 50%;
    transform: translateX(-50%);
    font-size: 11px;
    font-weight: 700;
    color: #e6ecf2;
    white-space: nowrap;
    pointer-events: none;
    /* A subtle shadow so the value reads against any header colour
       behind it (bar fills are coloured by the club). */
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
}

.fm-awards-bar-label {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1px;
    line-height: 1.1;
    text-align: center;
}

.fm-awards-bar-month {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.4px;
    color: #c8d6e0;
    text-transform: uppercase;
}

.fm-awards-bar-year {
    font-size: 9px;
    font-weight: 600;
    letter-spacing: 0.3px;
    color: #51626d;
}

/* ============================================
   DISTRIBUTED WORKERS PAGE
   ============================================ */

.fm-workers-page {
    padding-bottom: 24px;
}

/* The workers page is short (a summary panel + one table) and never
   needs the vertical document scrollbar. The global `scrollbar-gutter:
   stable` on <html> still reserves a ~15px strip on the right edge,
   which made the Process button look indented from the viewport edge.
   Drop the reservation for this page so the header sits flush right. */
html:has(.fm-workers-page) {
    scrollbar-gutter: auto;
}

/* Top-level panels on the workers page get more breathing room than
   the default mt-3 utility gives — the page is dense and benefits from
   clearer separation between the summary, the setup card, and the
   workers table. Overrides mt-3 only for direct children of the page. */
.fm-workers-page > .mt-3 {
    margin-top: 22px;
}

.fm-workers-summary-grid {
    display: grid;
    grid-template-columns: repeat(8, 1fr);
    gap: 8px;
    padding: 12px 14px;
}

@media (max-width: 1100px) {
    .fm-workers-summary-grid {
        grid-template-columns: repeat(4, 1fr);
    }
}

@media (max-width: 600px) {
    .fm-workers-summary-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

.fm-workers-summary-tile {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 10px 12px;
    background: linear-gradient(160deg, #243240 0%, #1d2832 100%);
    border: 1px solid #2c3c4a;
    border-radius: 6px;
    box-shadow:
        0 1px 0 rgba(255, 255, 255, 0.04) inset,
        0 1px 3px rgba(0, 0, 0, 0.18);
}

.fm-workers-summary-value {
    font-size: 20px;
    font-weight: 700;
    color: #ffffff;
    font-variant-numeric: tabular-nums;
    letter-spacing: -0.4px;
    line-height: 1.05;
}

.fm-workers-summary-label {
    font-size: 10.5px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.9px;
    color: #6c8290;
}

.fm-workers-summary-ok .fm-workers-summary-value {
    color: #5bd28a;
}

.fm-workers-summary-warn .fm-workers-summary-value {
    color: #e8c45a;
}

.fm-workers-summary-bad .fm-workers-summary-value {
    color: #e87a7a;
}

.fm-workers-table-wrap {
    padding: 12px 14px;
    overflow-x: auto;
}

.fm-workers-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 12.5px;
}

.fm-workers-table thead th {
    text-align: left;
    padding: 8px 10px;
    font-size: 10.5px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.9px;
    color: #6c8290;
    border-bottom: 1px solid #2c3c4a;
    background: #1a2530;
    white-space: nowrap;
}

.fm-workers-table thead th.fm-num {
    text-align: right;
}

.fm-workers-table tbody td {
    padding: 8px 10px;
    border-bottom: 1px solid #232f3a;
    color: #c3d2dd;
    vertical-align: middle;
}

.fm-workers-table tbody td.fm-num {
    text-align: right;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.fm-workers-table tbody td.fm-num-bad,
.fm-workers-table tbody td .fm-num-bad {
    color: #e87a7a;
}

.fm-workers-table tbody tr.fm-worker-ready td:first-child {
    border-left: 3px solid #57b07c;
}

.fm-workers-table tbody tr.fm-worker-local td:first-child {
    border-left: 3px solid #6ea8d6;
}

.fm-workers-table tbody tr.fm-worker-local {
    background: linear-gradient(
        90deg,
        rgba(110, 168, 214, 0.05) 0%,
        transparent 35%
    );
}

.fm-workers-table tbody tr.fm-worker-version_mismatch td:first-child {
    border-left: 3px solid #d8a738;
}

.fm-workers-table tbody tr.fm-worker-unreachable td:first-child {
    border-left: 3px solid #c46666;
}

.fm-workers-table tbody tr.fm-worker-connecting td:first-child {
    border-left: 3px solid #5a6b78;
}

.fm-worker-host,
.fm-worker-addr {
    font-weight: 600;
    color: #ffffff;
}

.fm-worker-addr {
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: 11.5px;
}

.fm-worker-cpu {
    max-width: 240px;
    color: #8a9caa;
}

.fm-worker-error {
    max-width: 320px;
    word-break: break-word;
}

.fm-worker-badge {
    display: inline-block;
    padding: 3px 8px;
    border-radius: 4px;
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.7px;
    line-height: 1.4;
    white-space: nowrap;
}

.fm-worker-badge-ready {
    background: rgba(91, 210, 138, 0.15);
    color: #5bd28a;
    border: 1px solid rgba(91, 210, 138, 0.35);
}

.fm-worker-badge-local {
    background: rgba(110, 168, 214, 0.15);
    color: #8cc3e6;
    border: 1px solid rgba(110, 168, 214, 0.35);
}

.fm-worker-badge-version_mismatch {
    background: rgba(216, 167, 56, 0.15);
    color: #e8c45a;
    border: 1px solid rgba(216, 167, 56, 0.35);
}

.fm-worker-badge-unreachable {
    background: rgba(232, 122, 122, 0.15);
    color: #e87a7a;
    border: 1px solid rgba(232, 122, 122, 0.35);
}

.fm-worker-badge-connecting {
    background: rgba(120, 140, 155, 0.18);
    color: #99adba;
    border: 1px solid rgba(120, 140, 155, 0.3);
}

.fm-worker-status-detail {
    margin-top: 4px;
    font-size: 11px;
    color: #8a9caa;
}

.fm-worker-seen {
    margin-top: 3px;
    font-size: 10px;
    color: #51626d;
    white-space: nowrap;
}

.fm-worker-seen .fa {
    font-size: 9px;
    opacity: 0.8;
}

.fm-muted {
    color: #51626d;
}

/* "+" button in the workers-table panel head — opens the add-worker
   dialog. Replaces the old static host-count label. */
.fm-workers-add-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    padding: 0;
    border-radius: 5px;
    border: 1px solid rgba(74, 157, 91, 0.4);
    background: rgba(74, 157, 91, 0.14);
    color: #5cb86c;
    font-size: 13px;
    cursor: pointer;
    transition:
        background 120ms ease,
        border-color 120ms ease,
        color 120ms ease;
}

.fm-workers-add-btn:hover {
    background: rgba(74, 157, 91, 0.24);
    border-color: rgba(74, 157, 91, 0.7);
    color: #6fce80;
}

/* Per-row remove-worker button in the actions column. Danger styling
   mirrors the add button's shape; the column is narrow and centered. */
.fm-worker-actions-col {
    width: 36px;
}

.fm-worker-actions {
    text-align: center;
    white-space: nowrap;
}

.fm-worker-remove-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    padding: 0;
    border-radius: 5px;
    border: 1px solid rgba(201, 74, 74, 0.4);
    background: rgba(201, 74, 74, 0.12);
    color: #d2706f;
    font-size: 12px;
    cursor: pointer;
    transition:
        background 120ms ease,
        border-color 120ms ease,
        color 120ms ease;
}

.fm-worker-remove-btn:hover {
    background: rgba(201, 74, 74, 0.24);
    border-color: rgba(201, 74, 74, 0.7);
    color: #e88a89;
}

.fm-worker-remove-btn:disabled {
    opacity: 0.5;
    cursor: default;
}

/* Add-worker modal dialog. */
.fm-worker-dialog {
    width: min(420px, calc(100vw - 32px));
    padding: 0;
    border: 1px solid #2c3c4a;
    border-radius: 8px;
    background: #1c2730;
    color: #c3d2dd;
    box-shadow: 0 18px 48px rgba(0, 0, 0, 0.5);
}

.fm-worker-dialog::backdrop {
    background: rgba(8, 12, 16, 0.6);
}

.fm-worker-dialog-form {
    display: block;
    margin: 0;
}

.fm-worker-dialog-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 12px 16px;
    border-bottom: 1px solid #263340;
    background: linear-gradient(180deg, #222e38 0%, #1e2a32 100%);
}

.fm-worker-dialog-head h3 {
    margin: 0;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1.2px;
    color: #8a9caa;
}

.fm-worker-dialog-close {
    border: none;
    background: none;
    color: #6c8290;
    font-size: 14px;
    cursor: pointer;
    padding: 2px 4px;
    line-height: 1;
}

.fm-worker-dialog-close:hover {
    color: #c3d2dd;
}

/* "How to run a worker" hint at the top of the add dialog. */
.fm-worker-dialog-info {
    display: flex;
    gap: 10px;
    margin: 16px 16px 0;
    padding: 11px 12px;
    border: 1px solid #2c3c4a;
    border-radius: 6px;
    background: #1a242c;
}

.fm-worker-dialog-info > .fa {
    flex: 0 0 auto;
    margin-top: 1px;
    color: #6ea8d6;
    font-size: 13px;
}

.fm-worker-dialog-info-text {
    min-width: 0;
}

.fm-worker-dialog-info-text p {
    margin: 0 0 7px;
    font-size: 12px;
    line-height: 1.45;
    color: #8a9caa;
}

.fm-worker-dialog-info-text code {
    display: block;
    padding: 7px 9px;
    border: 1px solid #2c3c4a;
    border-radius: 4px;
    background: #131c22;
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: 11.5px;
    color: #c3d2dd;
    word-break: break-all;
}

.fm-worker-dialog-body {
    display: flex;
    gap: 12px;
    padding: 16px;
}

.fm-worker-dialog-field {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.fm-worker-dialog-host {
    flex: 1 1 auto;
}

.fm-worker-dialog-port {
    flex: 0 0 84px;
}

.fm-worker-dialog-field span {
    font-size: 10.5px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.8px;
    color: #6c8290;
}

.fm-worker-dialog-field input {
    width: 100%;
    box-sizing: border-box;
    padding: 8px 10px;
    border: 1px solid #2c3c4a;
    border-radius: 5px;
    background: #131c22;
    color: #ffffff;
    font-size: 13px;
    font-family: inherit;
}

.fm-worker-dialog-field input:focus {
    outline: none;
    border-color: #4a9d5b;
}

.fm-worker-dialog-result {
    margin: 0 16px;
    padding: 9px 11px;
    border-radius: 5px;
    font-size: 12.5px;
    line-height: 1.4;
    word-break: break-word;
}

.fm-worker-dialog-result-pending {
    background: rgba(120, 140, 155, 0.16);
    color: #99adba;
}

.fm-worker-dialog-result-ok {
    background: rgba(91, 210, 138, 0.15);
    color: #5bd28a;
}

.fm-worker-dialog-result-bad {
    background: rgba(232, 122, 122, 0.15);
    color: #e87a7a;
}

.fm-worker-dialog-actions {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    padding: 16px;
}

.fm-worker-dialog-btn {
    padding: 8px 16px;
    border-radius: 5px;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.3px;
    cursor: pointer;
    border: 1px solid transparent;
}

.fm-worker-dialog-btn-cancel {
    background: #243240;
    border-color: #2c3c4a;
    color: #b3c2cd;
}

.fm-worker-dialog-btn-cancel:hover {
    background: #2a3a48;
}

.fm-worker-dialog-btn-add {
    background: #3f8a4f;
    color: #ffffff;
}

.fm-worker-dialog-btn-add:hover {
    background: #4a9d5b;
}

.fm-worker-dialog-btn-add:disabled {
    opacity: 0.55;
    cursor: default;
}

/* "Disable" turns the AI contract off — a destructive action, so it sits
   apart on the left (margin-right:auto) with a muted danger tint. */
.fm-worker-dialog-btn-disable {
    margin-right: auto;
    background: #3a2126;
    border-color: #4a2b30;
    color: #e2a7ad;
}

.fm-worker-dialog-btn-disable:hover {
    background: #48282f;
}

.fm-worker-dialog-btn-disable:disabled {
    opacity: 0.55;
    cursor: default;
}

/* Squad-page "AI" report button — same badge-blue as the home AI badge,
   sized to sit at the right of the .fm-panel-head next to the "Squad" title. */
.fm-ai-analyze-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 3px 9px;
    border-radius: 6px;
    background: var(--fm-ai-bg);
    border: 1px solid var(--fm-ai-border);
    color: #eaf1ff;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 1px;
    text-transform: uppercase;
    cursor: pointer;
    transition:
        border-color 0.15s,
        transform 0.15s,
        box-shadow 0.2s;
    box-shadow:
        0 1px 0 rgba(255, 255, 255, 0.1) inset,
        0 1px 3px rgba(0, 0, 0, 0.25);
}

.fm-ai-analyze-btn:hover {
    border-color: var(--fm-ai-border-hover);
    transform: translateY(-1px);
    box-shadow:
        0 1px 0 rgba(255, 255, 255, 0.12) inset,
        0 4px 10px rgba(0, 0, 0, 0.3);
}

/* AI team-report dialog — reuses the worker-dialog shell (defined above, so
   these overrides win the cascade), widened for prose with a scrollable body.
   While the agent runs, the cyan status + a live tool-call log stream in; once
   the report arrives the log is hidden and only the prose remains. */
.fm-ai-report-dialog {
    width: min(640px, calc(100vw - 32px));
    max-height: min(80vh, 760px);
}

.fm-ai-report-body {
    padding: 16px;
    overflow-y: auto;
}

/* Preloaded / running state — cyan status, then a plain left-aligned log of
   the tools the model is calling, streamed in over the long-poll. */
.fm-ai-report-status {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 0;
    color: #22d3ee;
    font-size: 13px;
    font-weight: 600;
}

.fm-ai-report-status .spinner {
    border-top-color: #22d3ee;
}

.fm-ai-report-status-error {
    color: #e87a7a;
}

.fm-ai-report-status-error .spinner {
    display: none;
}

.fm-ai-report-live {
    margin: 8px 0 4px;
    padding: 0;
    list-style: none;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
}

.fm-ai-report-live:empty {
    display: none;
}

.fm-ai-tool-call {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 12px;
    color: #9db3c1;
    animation: fm-ai-tool-in 0.3s ease both;
}

.fm-ai-tool-call::before {
    content: "";
    flex: 0 0 auto;
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: #22d3ee;
    box-shadow: 0 0 6px rgba(34, 211, 238, 0.6);
}

@keyframes fm-ai-tool-in {
    from {
        opacity: 0;
        transform: translateY(6px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@media (prefers-reduced-motion: reduce) {
    .fm-ai-tool-call {
        animation: none;
    }
}

.fm-ai-report-text {
    white-space: pre-wrap;
    line-height: 1.55;
    font-size: 13.5px;
    color: #d7e2ea;
}

.fm-ai-report-text strong {
    color: #ffffff;
    font-weight: 700;
}

/* ============================================================
   Team → Relations : dressing-room relationship graph
   Force-directed web of good / hostile squad relationships on
   the default pitch-green surface, reusing the tactics photo
   language. Everything here is scoped under .fm-rel-* so it
   can't collide with the rest of the sheet.
   ============================================================ */

.fm-rel-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 10px;
}

.fm-rel-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    align-items: center;
}

.fm-rel-legend-item {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 11px;
    font-weight: 600;
    color: #9aa4ad;
    letter-spacing: 0.2px;
}

.fm-rel-swatch {
    width: 16px;
    height: 0;
    border-top: 3px solid transparent;
    border-radius: 2px;
    display: inline-block;
}

.fm-rel-swatch-bond {
    border-top-color: #35d36a;
}

.fm-rel-swatch-friendly {
    border-top-color: #4ec95e;
    opacity: 0.7;
}

.fm-rel-swatch-tension {
    border-top-color: #e0a23a;
    border-top-style: dashed;
}

.fm-rel-swatch-rivalry {
    border-top-color: #e5442c;
    border-top-style: dashed;
}

/* --- Summary tiles --- */
.fm-rel-summary {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 10px;
    padding: 14px 12px 4px;
}

.fm-rel-stat {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 10px 12px;
    background: #1c2830;
    border: 1px solid #263340;
    border-left-width: 3px;
    border-radius: 4px;
}

.fm-rel-stat-num {
    font-size: 20px;
    font-weight: 700;
    color: #e8edf1;
    font-variant-numeric: tabular-nums;
    line-height: 1;
}

.fm-rel-stat-label {
    font-size: 11px;
    font-weight: 600;
    color: #8a939b;
    letter-spacing: 0.2px;
}

.fm-rel-stat-bond {
    border-left-color: #35d36a;
    --rel-tier: #35d36a;
}

.fm-rel-stat-friendly {
    border-left-color: #4ec95e;
    --rel-tier: #4ec95e;
}

.fm-rel-stat-tension {
    border-left-color: #e0a23a;
    --rel-tier: #e0a23a;
}

.fm-rel-stat-rivalry {
    border-left-color: #e5442c;
    --rel-tier: #e5442c;
}

/* --- Tier filter toggles ---
   Each summary tile doubles as a checkbox that shows or hides its tier's
   threads. A real <input> stays in the DOM (visually hidden) so the toggle
   keeps native keyboard + focus behaviour; the custom box fills with the
   tier's own accent when on, and the whole tile fades when off so a
   switched-off tier reads as "not shown" at a glance. --- */
.fm-rel-filter {
    flex-direction: row;
    align-items: center;
    gap: 12px;
    cursor: pointer;
    -webkit-user-select: none;
    user-select: none;
    transition: opacity 0.15s ease, border-color 0.15s ease, background 0.15s ease;
}

.fm-rel-filter:hover {
    background: #22303a;
    border-color: #2f4150;
}

.fm-rel-stat-body {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.fm-rel-filter-input {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
    margin: 0;
    pointer-events: none;
}

.fm-rel-filter-box {
    flex: 0 0 auto;
    width: 18px;
    height: 18px;
    border-radius: 5px;
    border: 2px solid #3a4a58;
    background: #131c23;
    position: relative;
    transition: background 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
}

.fm-rel-filter-box::after {
    content: "";
    position: absolute;
    left: 5px;
    top: 1px;
    width: 4px;
    height: 9px;
    border: solid #10191f;
    border-width: 0 2px 2px 0;
    transform: rotate(45deg) scale(0);
    transform-origin: center;
    transition: transform 0.15s ease;
}

.fm-rel-filter-input:checked + .fm-rel-filter-box {
    background: var(--rel-tier, #35d36a);
    border-color: var(--rel-tier, #35d36a);
}

.fm-rel-filter-input:checked + .fm-rel-filter-box::after {
    transform: rotate(45deg) scale(1);
}

.fm-rel-filter-input:focus-visible + .fm-rel-filter-box {
    box-shadow: 0 0 0 3px rgba(120, 170, 255, 0.35);
}

.fm-rel-stat.is-off {
    opacity: 0.5;
    background: #171f26;
    border-left-color: #33404b;
}

.fm-rel-stat.is-off .fm-rel-stat-num,
.fm-rel-stat.is-off .fm-rel-stat-label {
    color: #6a747d;
}

@media (prefers-reduced-motion: reduce) {
    .fm-rel-filter,
    .fm-rel-filter-box,
    .fm-rel-filter-box::after {
        transition: none;
    }
}

/* --- Graph stage: transparent, sits directly on the panel. Height is set
   from JS to fit the formation rows plus their name labels, so the bottom
   line is never clipped against the window. --- */
.fm-rel-stage {
    position: relative;
    margin: 12px;
    min-height: 360px;
    border-radius: 4px;
    overflow: hidden;
    background: transparent;
}

/* --- Formation bands: hairline pitch-line per row, tag at the left edge.
   Sit behind the edges + photos (z-index 0), so the line only shows in the
   gaps between players — reading as a tactics-board guide, not a strike
   through the faces. --- */
.fm-rel-rowline {
    position: absolute;
    left: 0;
    right: 0;
    height: 0;
    border-top: 1px dashed rgba(255, 255, 255, 0.1);
    transform: translateY(-0.5px);
    pointer-events: none;
    z-index: 0;
}

.fm-rel-rowtag {
    position: absolute;
    left: 4px;
    transform: translateY(-50%);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 1.5px;
    color: rgba(154, 164, 173, 0.5);
    text-transform: uppercase;
    pointer-events: none;
    z-index: 0;
}

.fm-rel-edges {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    z-index: 1;
}

.fm-rel-edge {
    stroke-linecap: round;
    transition: opacity 0.18s;
}

.fm-rel-edge-bond {
    stroke: #35d36a;
    opacity: 0.85;
}

.fm-rel-edge-friendly {
    stroke: #4ec95e;
    opacity: 0.5;
}

.fm-rel-edge-tension {
    stroke: #e0a23a;
    opacity: 0.72;
    stroke-dasharray: 6 5;
}

.fm-rel-edge-rivalry {
    stroke: #e5442c;
    opacity: 0.9;
    stroke-dasharray: 6 5;
}

/* --- Player nodes: photo box centred on (x,y), label floats below --- */
.fm-rel-node {
    position: absolute;
    /* Anchored at the stage origin; the layout script positions each card
       purely through transform, so per-frame moves never trigger layout. */
    left: 0;
    top: 0;
    width: 54px;
    height: 66px;
    transform: translate(-50%, -50%);
    will-change: transform;
    z-index: 2;
    cursor: grab;
    text-decoration: none;
    touch-action: none;
    -webkit-user-select: none;
    user-select: none;
    transition: opacity 0.18s;
}

.fm-rel-node:active {
    cursor: grabbing;
}

.fm-rel-photo {
    display: block;
    width: 54px;
    height: 66px;
    border-radius: 4px;
    overflow: hidden;
    background: #1a2530;
    border: 2px solid rgba(255, 255, 255, 0.75);
    box-shadow:
        0 0 12px rgba(74, 200, 90, 0.45),
        0 3px 8px rgba(0, 0, 0, 0.5);
    transition:
        transform 0.18s,
        box-shadow 0.18s;
}

.fm-rel-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 22%;
    display: block;
    pointer-events: none;
}

.fm-rel-node.pos-gk .fm-rel-photo {
    border-color: rgba(255, 230, 130, 0.9);
    box-shadow:
        0 0 12px rgba(232, 200, 48, 0.5),
        0 3px 8px rgba(0, 0, 0, 0.5);
}

/* Ego graph subject: the player whose page this is. Larger, with a bright
   accent ring so they clearly read as the hub the web hangs beneath. */
.fm-rel-node.fm-rel-node-root {
    width: 66px;
    height: 80px;
    z-index: 3;
    cursor: default;
}

.fm-rel-node.fm-rel-node-root .fm-rel-photo {
    width: 66px;
    height: 80px;
    border-color: #7fd4ff;
    box-shadow:
        0 0 16px rgba(90, 190, 255, 0.7),
        0 3px 10px rgba(0, 0, 0, 0.55);
}

.fm-rel-node.fm-rel-node-root .fm-rel-name {
    font-size: 13px;
    max-width: 140px;
}

.fm-rel-node:hover .fm-rel-photo {
    transform: scale(1.08);
}

.fm-rel-name {
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%);
    margin-top: 4px;
    max-width: 118px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    font-size: 12px;
    font-weight: 700;
    color: #fff;
    letter-spacing: 0.2px;
    text-shadow:
        0 1px 3px rgba(0, 0, 0, 0.9),
        0 0 8px rgba(0, 0, 0, 0.6);
    text-align: center;
    text-decoration: none;
    cursor: pointer;
}

.fm-rel-name:hover {
    color: #f1d271;
}

/* --- Hover spotlight: fade all but the player and their direct links --- */
.fm-rel-stage.fm-rel-focus .fm-rel-node {
    opacity: 0.26;
}

.fm-rel-stage.fm-rel-focus .fm-rel-node.is-hot,
.fm-rel-stage.fm-rel-focus .fm-rel-node.is-linked {
    opacity: 1;
}

.fm-rel-stage.fm-rel-focus .fm-rel-node.is-hot .fm-rel-photo {
    box-shadow:
        0 0 18px rgba(74, 200, 90, 0.75),
        0 3px 10px rgba(0, 0, 0, 0.6);
}

/* Linked teammates take the colour of the thread that joins them to the
   hovered player, so the relation is legible straight off the photo border.
   Higher specificity than the GK gold border, so a linked keeper recolours
   for the duration of the hover. */
.fm-rel-stage.fm-rel-focus .fm-rel-node.is-linked.rel-bond .fm-rel-photo {
    border-color: #35d36a;
    box-shadow:
        0 0 16px rgba(53, 211, 106, 0.75),
        0 3px 8px rgba(0, 0, 0, 0.5);
}

.fm-rel-stage.fm-rel-focus .fm-rel-node.is-linked.rel-friendly .fm-rel-photo {
    border-color: #4ec95e;
    box-shadow:
        0 0 15px rgba(78, 201, 94, 0.6),
        0 3px 8px rgba(0, 0, 0, 0.5);
}

.fm-rel-stage.fm-rel-focus .fm-rel-node.is-linked.rel-tension .fm-rel-photo {
    border-color: #e0a23a;
    box-shadow:
        0 0 15px rgba(224, 162, 58, 0.7),
        0 3px 8px rgba(0, 0, 0, 0.5);
}

.fm-rel-stage.fm-rel-focus .fm-rel-node.is-linked.rel-rivalry .fm-rel-photo {
    border-color: #e5442c;
    box-shadow:
        0 0 16px rgba(229, 68, 44, 0.78),
        0 3px 8px rgba(0, 0, 0, 0.5);
}

.fm-rel-stage.fm-rel-focus .fm-rel-edge {
    opacity: 0.1;
}

.fm-rel-stage.fm-rel-focus .fm-rel-edge.is-linked {
    opacity: 1;
}

@media (max-width: 640px) {
    .fm-rel-summary {
        grid-template-columns: repeat(2, 1fr);
    }
}

/* ============================================================
   NEWSPAPER TAB

   A club's weekly, printed the way a local paper really was: one
   black plate on cool newsprint. No second colour anywhere —
   emphasis comes from weight, size, rule thickness and a ladder
   of greys, which is what a single-plate press had to work with
   and is the reason old newspapers still look composed.

   The sheet folds. Everything above the crease is the edition;
   everything below it is the digest. That is the one structural
   device here, and it means something.
   ============================================================ */

.np-desk {
    --np-pad: 34px;
    --np-paper: #ece9df;
    --np-paper-hi: #f5f3ec;
    --np-paper-deep: #ddd8ca;
    --np-ink: #171612;
    --np-ink-2: #4c473e;
    --np-ink-3: #837c6e;
    --np-rule: #c9c1ae;
    --np-rule-soft: #dad4c4;
    --np-serif: Georgia, "Times New Roman", "Liberation Serif", "Nimbus Roman",
        "Songti SC", "Hiragino Mincho ProN", serif;
    --np-furniture: "Outfit", "Helvetica Neue", Helvetica, Arial, sans-serif;

    /* The reader's own hand. Everything else on this page came off one
       black plate; this did not. A clippings bureau went through the
       edition with a chinagraph before it posted the paper on, and the
       pencil was blue because blue does not photograph — so blue is the
       one colour that has any business on a single-plate sheet. It is
       never printer's ink, and it never marks anything the presses
       decided: only the passages about the man whose page this is.
       Lighter on the dark desk the sheets are laid out on, because the
       same wax reads differently off the paper. */
    --np-pencil: #27447e;
    --np-pencil-soft: rgba(39, 68, 126, 0.4);
    /* Laid over a word rather than under it, and mixed lighter and
       bluer than the stroke itself: the ink of the pencil thinned to a
       wash goes grey at this alpha, and grey on newsprint is a smudge
       rather than a mark. */
    --np-pencil-wash: rgba(46, 96, 190, 0.14);
    --np-pencil-lit: #8aabe2;
}

/* ── The sheet ─────────────────────────────────────────────── */

.np-sheet {
    position: relative;
    padding: 28px var(--np-pad) var(--np-pad);
    color: var(--np-ink);
    background-color: var(--np-paper);
    /* An even fine grain, and light falling across the top of the
       sheet. Two layers, not five: newsprint is a plain material and
       piling texture on it only makes it look printed on a screen. */
    background-image:
        radial-gradient(
            circle at 1px 1px,
            rgba(92, 82, 62, 0.05) 1px,
            transparent 0
        ),
        linear-gradient(180deg, var(--np-paper-hi), var(--np-paper) 240px);
    background-size:
        4px 4px,
        100% 100%;
    box-shadow:
        0 1px 0 rgba(255, 255, 255, 0.5) inset,
        0 18px 40px -18px rgba(0, 0, 0, 0.65);
}

.np-sheet + .np-sheet {
    margin-top: 18px;
}

.np-sheet a:focus-visible {
    outline: 2px solid var(--np-ink);
    outline-offset: 3px;
}

/* ── Nameplate ─────────────────────────────────────────────── */

.np-nameplate {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    align-items: end;
    gap: 20px;
    padding-top: 12px;
    padding-bottom: 12px;
    /* Hairline over a heavy rule. With one plate the contrast has to
       come from weight, and two weights are what make a nameplate look
       printed rather than boxed. */
    border-top: 1px solid var(--np-rule);
    border-bottom: 3px solid var(--np-ink);
}

.np-masthead {
    margin: 0;
    font-family: var(--np-serif);
    font-weight: 700;
    font-size: clamp(22px, 3.5vw, 50px);
    line-height: 0.96;
    letter-spacing: -0.005em;
    text-align: center;
    text-transform: uppercase;
    text-wrap: balance;
    /* A trace of ink spread. Any more and it reads as a blur. */
    text-shadow: 0.4px 0 0 currentColor;
}

/* The nameplate as a cross-reference — a player's page links it to the
   club's own paper. It must not LOOK like a link: a rule under a
   masthead reads as a printing fault, so this inherits the nameplate
   whole and never draws one in any state. The global
   `a:link, a:visited, a:hover, a:active { text-decoration: none
   !important }` near the top of this sheet already suppresses the line;
   what a bare <a> would still take is Bootstrap's link colour, which is
   what `color: inherit` is here to stop. Specificity (0,2,1) clears
   that reset either way. Hover dims rather than underlines — the only
   affordance a nameplate can carry without stopping being one. */
a.np-masthead-link:link,
a.np-masthead-link:visited,
a.np-masthead-link:hover,
a.np-masthead-link:focus-visible {
    color: inherit !important;
    text-decoration: none !important;
}

a.np-masthead-link:hover,
a.np-masthead-link:focus-visible {
    opacity: 0.72;
}

.np-ear {
    display: flex;
    align-items: baseline;
    gap: 7px;
    min-width: 0;
    font-family: var(--np-furniture);
    font-size: 9.5px;
    font-weight: 600;
    letter-spacing: 0.19em;
    text-transform: uppercase;
    white-space: nowrap;
    color: var(--np-ink-3);
}

.np-ear-figure {
    order: 2;
    font-size: 21px;
    font-weight: 600;
    letter-spacing: 0;
    font-variant-numeric: lining-nums tabular-nums;
    color: var(--np-ink);
}

.np-ear-right {
    justify-content: flex-end;
    text-align: right;
}

.np-folio {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
    padding: 7px 0 8px;
    border-bottom: 1px solid var(--np-rule);
    font-family: var(--np-furniture);
    font-size: 9.5px;
    font-weight: 500;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--np-ink-3);
}

/* The correspondent line is the only thing here long enough to
   collide with the stamp, so it is the one that gives way. */
.np-folio > span:first-child {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.np-folio-mood {
    flex: none;
    white-space: nowrap;
    color: var(--np-ink-3);
}

.np-folio-mood-crisis,
.np-folio-mood-uneasy {
    color: var(--np-ink);
}

/* The week's stamp. Set in the folio line rather than floated over
   the page: an overlay had to guess where the text below it ended,
   and guessed wrong the moment a headline ran long. */
.np-stamp {
    position: relative;
    top: 1px;
    padding: 3px 8px 2px 12px;
    border: 2px solid var(--np-ink);
    background: var(--np-paper-deep);
    transform: rotate(-3deg);
    transform-origin: right center;
    font-weight: 600;
    color: var(--np-ink) !important;
    /* Letterpress never inks evenly. */
    opacity: 0.9;
}

/* ── Page grid ─────────────────────────────────────────────── */

/* The front block: the lead's measure, then the rail. Counted in the
   same units as `.np-run` below — 2.35 to 1 is 2.35 + 2.35 to 2 — so the
   rail's rule and the run's second rule are the same line down the
   sheet. A page whose vertical rules step sideways between one row of
   news and the next was never set on a stone. */
.np-body {
    display: grid;
    grid-template-columns: minmax(0, 2.35fr) minmax(0, 1fr);
    margin-top: 22px;
}

.np-main {
    min-width: 0;
    padding-right: 28px;
    border-right: 1px solid var(--np-rule);
}

.np-rail {
    min-width: 0;
    padding-left: 26px;
}

/* A week with neither fixtures nor a face has no rail to rule off
   against, so the text runs the full measure. */
.np-body-full {
    grid-template-columns: minmax(0, 1fr);
}

.np-body-full .np-main {
    padding-right: 0;
    border-right: 0;
}

.np-body-full .np-rail {
    display: none;
}

/* ── Stories ───────────────────────────────────────────────── */

.np-kicker {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 4px 10px;
    margin: 0 0 10px;
    font-family: var(--np-furniture);
    font-size: 9.5px;
    font-weight: 600;
    letter-spacing: 0.21em;
    text-transform: uppercase;
    color: var(--np-ink);
}

.np-dateline {
    padding-left: 10px;
    border-left: 1px solid var(--np-rule);
    font-weight: 500;
    letter-spacing: 0.15em;
    color: var(--np-ink-3);
}

.np-headline {
    margin: 0 0 14px;
    font-family: var(--np-serif);
    font-weight: 700;
    font-size: clamp(26px, 3.9vw, 46px);
    line-height: 0.98;
    letter-spacing: -0.021em;
    text-wrap: balance;
}

.np-subhead {
    margin: 0 0 9px;
    font-family: var(--np-serif);
    font-weight: 700;
    font-size: 19px;
    line-height: 1.14;
    letter-spacing: -0.011em;
    text-wrap: balance;
}

/* A headline about a person leads to him. Black ink and a rule under
   the type — never a tinted word: the sheet runs on one plate, and a
   printed cross-reference has always been underscored rather than
   coloured. `text-decoration` rather than the briefs' background rule
   because a headline wraps, and only the real underline follows it
   onto the second line. */
/* Written as `a.np-story-link:link` on purpose. A global
   `a:link, a:visited, a:hover, a:active { text-decoration: none
   !important }` sits near the top of this sheet, and its specificity
   (0,1,1) beats a bare class (0,1,0) — so `.np-story-link { text-
   decoration: underline !important }` loses silently and the link
   renders as plain type. This is the same wall the briefs column hit,
   which is why THAT one draws its rule with a background gradient
   instead. A headline wraps and only a real underline follows it onto
   the second line, so here the reset is out-specified rather than
   worked around. The longhands must stay AFTER the shorthand:
   `text-decoration` resets colour and thickness along with the line. */
a.np-story-link:link,
a.np-story-link:visited {
    color: var(--np-ink) !important;
    text-decoration: underline !important;
    text-decoration-thickness: 1px !important;
    text-decoration-color: var(--np-rule) !important;
    text-underline-offset: 0.14em;
    transition: text-decoration-color 0.15s ease;
}

a.np-story-link:hover,
a.np-story-link:focus-visible {
    color: var(--np-ink) !important;
    text-decoration: underline !important;
    text-decoration-thickness: 1px !important;
    text-decoration-color: var(--np-ink) !important;
}

/* The same cross-reference, made in the middle of a paragraph. Body
   copy carries several of them in a sentence — a player, his club, the
   club that wants him — so the rule is quieter than the headline's and
   only firms up under the cursor. Drawn with a background gradient
   rather than `text-decoration` on purpose: see the note above the
   briefs column, whose reset this shares. */
a.np-prose-link:link,
a.np-prose-link:visited {
    color: var(--np-ink) !important;
    background-image: linear-gradient(var(--np-rule), var(--np-rule));
    background-repeat: no-repeat;
    background-position: 0 100%;
    background-size: 100% 1px;
    transition: background-size 0.15s ease;
}

a.np-prose-link:hover,
a.np-prose-link:focus-visible {
    background-image: linear-gradient(var(--np-ink), var(--np-ink));
    background-size: 100% 2px;
}

.np-lead-body {
    /* Newsprint is set in columns for a reason: past roughly seventy
       characters the eye loses the line on the way back. */
    max-width: 60ch;
    margin: 0;
    font-family: var(--np-serif);
    font-size: 16px;
    line-height: 1.58;
    color: var(--np-ink);
    text-align: justify;
    hyphens: auto;
}

.np-lead-body::first-letter {
    float: left;
    margin: 8px 10px 0 0;
    font-size: 54px;
    font-weight: 700;
    line-height: 0.74;
    color: var(--np-ink);
}

/* A drop cap is a letter. Copy that opens on a scoreline, a tally or a
   fee renders its first character at 54px — a giant "4" hanging off
   "4-1 against Sevilla", a giant "$" off a transfer fee — and that
   reads as a printing fault rather than as a flourish. Real football
   copy opens that way often, in all nine bundles, so the renderer sets
   this class from the composed text instead of asking every writer in
   every language to avoid the construction. Mirrors how `.np-quote`
   stands the cap down. */
.np-lead-body.np-no-cap::first-letter {
    float: none;
    margin: 0;
    font-size: inherit;
    font-weight: inherit;
    line-height: inherit;
}

/* ── The photograph ────────────────────────────────────────── */

.np-figure {
    max-width: 215px;
    margin: 0 0 22px;
}

/* Black and white, and nothing else. The contrast is pushed hard so
   the tonal range reads as a printed photograph rather than a
   desaturated screenshot; the screen above it does the rest. */
.np-photo {
    position: relative;
    display: block;
    overflow: hidden;
    background: var(--np-paper-deep);
}

.np-photo img {
    display: block;
    width: 100%;
    height: auto;
    /* Head-and-shoulders, cropped square: a portrait at full plate
       height towers over the column it sits in. */
    aspect-ratio: 1;
    object-fit: cover;
    object-position: 50% 18%;
    filter: grayscale(1) brightness(1.04) contrast(1.42);
}

/* The dot screen. Fine enough to read as texture, coarse enough to
   be visible — which is the whole point of a halftone. */
.np-screen {
    position: absolute;
    inset: 0;
    pointer-events: none;
    background-image: radial-gradient(
        circle at 50% 50%,
        rgba(23, 22, 18, 0.6) 0.85px,
        transparent 1.15px
    );
    background-size: 3px 3px;
    mix-blend-mode: multiply;
    opacity: 0.4;
}

.np-caption {
    margin-top: 9px;
    padding-top: 7px;
    border-top: 2px solid var(--np-ink);
    font-family: var(--np-furniture);
    font-size: 10.5px;
    line-height: 1.5;
    color: var(--np-ink-2);
}

.np-caption strong {
    display: block;
    margin-bottom: 2px;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--np-ink);
}

/* ── The columns: the pair beside the rail, and the run below ─ */

/* No negative margins. The rule sits on a column's own edge and each
   column pads away from it — pulling a grid item back into the
   gutter made it wider than its own track, and the overflow pushed
   the whole sheet past the page. */
.np-splits,
.np-run {
    display: grid;
    margin-top: 26px;
    padding-top: 20px;
    border-top: 1px solid var(--np-ink);
}

/* The two that share the main column with the lead, and so are set to
   what is left of the measure once the rail has taken its third.

   The correction is the whole reason this is not a plain pair of halves.
   The pair is measured inside `.np-main`'s content box — behind its
   padding and the rail's rule — while the run below is measured across
   the whole sheet. Split in half against the narrower figure, the
   pair's gutter lands half an inset to the left of the run's first
   rule, and the sheet gets two rules a hair apart doing one job. So
   half the inset is handed back to the first column, which puts the
   gutter on the run's line exactly. */
.np-splits {
    /* `.np-main`'s padding-right plus its rule, halved. */
    --np-splits-inset: calc((28px + 1px) / 2);
    grid-template-columns: calc(50% + var(--np-splits-inset)) minmax(0, 1fr);
}

/* No rail means no inset to hand back: the pair is already measured
   across the sheet, and halves are halves. */
.np-body-full .np-splits {
    --np-splits-inset: 0px;
}

/* Everything the front block could not hold, once the photograph and
   the results column have run out and the page has the full measure
   back. Three columns rather than two: at this width a 14px body set
   in halves is a line nobody finishes, and the narrower measure is
   itself the signal that the reader has come off the front block. */
.np-run {
    /* Not `repeat(3, 1fr)`: the run is set on the front block's grid, not
       on a fresh one. `2.35 2.35 2` divides the measure at 35.07% and
       70.15% — the pair's gutter and the rail's rule to the pixel —
       where equal thirds fell at 33.3% and 66.7% and left every rule on
       the page stepping sideways at the fold. The last column is the
       photograph's column carried down the sheet, so it is the narrow
       one; two columns of news and a narrower third is a masthead
       broadsheet's oldest measure anyway. Keep in step with `.np-body`. */
    grid-template-columns:
        minmax(0, 2.35fr)
        minmax(0, 2.35fr)
        minmax(0, 2fr);
    /* Space between one row of stories and the next. Not `row-gap` any
       more: the rows are the parts of a story now, not the stories
       themselves — see the subgrid note below, which is where this is
       spent. */
    --np-run-space: 24px;
    row-gap: 0;
    margin-top: 30px;
}

.np-split {
    min-width: 0;
    padding-right: 26px;
}

/* A gutter rule belongs to the column on its right, so it is drawn by
   every story that does not open a row.
   Written per container with nth-child rather than as `.np-split +
   .np-split`: the adjacent-sibling form is only correct while a run is
   one row deep. With two rows it rules the first column of the second
   row as well, which drops a vertical line down the middle of the
   margin, and it leaves the last column of every row padded as though
   another story followed it. */
.np-splits > .np-split:nth-child(2n),
.np-run > .np-split:not(:nth-child(3n + 1)) {
    padding-left: 26px;
    border-left: 1px solid var(--np-rule);
}

.np-splits > .np-split:nth-child(2n),
.np-run > .np-split:nth-child(3n) {
    padding-right: 0;
}

/* A single piece beside the rail has no partner to share the row with,
   so it takes the whole of it rather than leaving half the block blank.
   The run below never needs this: its length is rounded up to whole
   rows before the page is set. */
.np-splits > .np-split:only-child {
    grid-column: 1 / -1;
    padding-right: 0;
}

/* A run reads across as well as down. Three stories side by side are
   three columns of one page, so the kicker, the headline and the first
   line of copy have to fall on the same three lines in all of them —
   and on the row below as well. Left to itself the grid lines up only
   the TOP of each story: a four-line headline beside a two-line one
   opens the two bodies on different lines, and the second row repeats
   the mistake against the first.

   `subgrid` is what a stone hand did with a measure. Each story spans
   three of the container's row tracks and hands its own three parts
   back to them, so every kicker in a row shares one track, every
   headline the next, and every body opens on one line. Where subgrid is
   not supported the declaration drops, the story stays a three-row grid
   of its own, and the page sets exactly what it set before — ragged,
   but not broken. */
.np-splits > .np-split,
.np-run > .np-split {
    display: grid;
    grid-template-rows: subgrid;
    grid-row: span 3;
}

/* Each part sits on its line rather than filling the track the deepest
   of the three asked for. Stretching is the default, and a stretched
   body would drag the pull-quote's heavy rule on down the column well
   past the last word of the quote. */
.np-splits > .np-split > *,
.np-run > .np-split > * {
    align-self: start;
}

/* Now that a story's parts are tracks of the container, the
   container's own `row-gap` would open between a kicker and its
   headline as readily as between one row of stories and the next. So
   the space between rows is carried by the part that ends a story, and
   the last row — which has nothing under it but the fold — gives it
   back.

   `-n + 3` is the last row exactly: the typesetter rounds the run up to
   whole rows of `PressDesk::RUN_COLUMNS`, which
   `the_run_always_comes_out_to_whole_rows` holds it to at every edition
   size. */
.np-run > .np-split > .np-split-body {
    margin-bottom: var(--np-run-space);
}

.np-run > .np-split:nth-last-child(-n + 3) > .np-split-body {
    margin-bottom: 0;
}

.np-split-body {
    margin: 0;
    font-family: var(--np-serif);
    font-size: 14px;
    line-height: 1.62;
    color: var(--np-ink-2);
    text-align: justify;
    hyphens: auto;
}

/* ── The pull-quote ────────────────────────────────────────── */

/* Copy the paper attributes to a person rather than to its own
   correspondent — a loanee asking to come home, a player who has just
   asked to leave. Set in italic behind a heavy left rule, which is the
   oldest and least decorated way a printed page says "these are his
   words, not ours". Never justified: a quote is set ragged so it reads
   as speech rather than as another column of reportage. */
.np-quote {
    padding-left: 14px;
    border-left: 3px solid var(--np-ink);
    font-style: italic;
    text-align: left;
    hyphens: none;
    color: var(--np-ink);
}

.np-lead-body.np-quote::first-letter {
    font-size: inherit;
    font-weight: inherit;
    font-style: italic;
    float: none;
    margin: 0;
    line-height: inherit;
}

/* ── Results ───────────────────────────────────────────────── */

.np-box-title {
    margin: 0 0 10px;
    padding-bottom: 6px;
    border-bottom: 2px solid var(--np-ink);
    font-family: var(--np-furniture);
    font-size: 9.5px;
    font-weight: 600;
    letter-spacing: 0.26em;
    text-transform: uppercase;
    color: var(--np-ink);
}

.np-results,
.np-briefs {
    margin: 0;
    padding: 0;
    list-style: none;
}

/* Laid out with flex rather than fixed grid tracks: a cup tie carries
   a competition mark between the club and the scoreline and a league
   fixture does not, and an empty grid track would still spend its
   column gap — shifting the score on every ordinary Saturday. */
.np-result {
    display: flex;
    align-items: baseline;
    gap: 10px;
    padding: 9px 0;
    border-bottom: 1px solid var(--np-rule-soft);
}

.np-result:last-child {
    border-bottom: 0;
}

.np-result-date {
    flex: 0 0 auto;
    font-family: var(--np-furniture);
    font-size: 9px;
    letter-spacing: 0.08em;
    font-variant-numeric: lining-nums tabular-nums;
    color: var(--np-ink-3);
}

.np-result-club {
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    font-family: var(--np-serif);
    font-size: 14px;
    color: var(--np-ink-2) !important;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* The competition mark. Ruled rather than coloured, like every other
   piece of furniture on this single-plate page. */
.np-result-cup {
    flex: 0 0 auto;
    padding: 1px 4px;
    border: 1px solid var(--np-rule);
    font-family: var(--np-furniture);
    font-size: 8px;
    font-weight: 600;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--np-ink-3);
}

.np-result-club:hover {
    color: var(--np-ink) !important;
}

/* The scoreline is the one figure on the page a reader looks for
   first, so it is set like one: lining, tabular, and stepped down
   the grey ladder by result — black for a win, mid for a draw,
   light for a defeat. */
.np-result-score {
    flex: 0 0 auto;
    font-family: var(--np-furniture);
    font-size: 15px;
    font-weight: 600;
    letter-spacing: 0.02em;
    font-variant-numeric: lining-nums tabular-nums;
    color: var(--np-ink-2);
}

.np-result-w .np-result-club {
    font-weight: 700;
    color: var(--np-ink) !important;
}

.np-result-w .np-result-score {
    font-weight: 700;
    color: var(--np-ink);
}

.np-result-l .np-result-score {
    color: var(--np-ink-3);
}

/* The scoreline opens the match record, but the ruled column keeps
   its ledger face: the link takes the same grey-ladder ink as the
   plain figure (the !important outranks the site-wide anchor rules,
   the same wall .np-result-club hit), and only the hover admits it
   is a link at all. */
a.np-result-score:link,
a.np-result-score:visited {
    color: var(--np-ink-2) !important;
}

.np-result-w a.np-result-score:link,
.np-result-w a.np-result-score:visited {
    color: var(--np-ink) !important;
}

.np-result-l a.np-result-score:link,
.np-result-l a.np-result-score:visited {
    color: var(--np-ink-3) !important;
}

a.np-result-score:hover {
    color: var(--np-ink) !important;
    text-decoration: underline !important;
}

/* ── The fold, and the digest below it ─────────────────────── */

.np-band {
    position: relative;
    margin-top: 30px;
    padding-top: 22px;
}

/* The crease. A newspaper is folded once, and the fold is where the
   edition stops and the digest starts. */
.np-fold {
    position: absolute;
    top: 0;
    right: calc(var(--np-pad) * -1);
    left: calc(var(--np-pad) * -1);
    height: 14px;
    pointer-events: none;
    background-image:
        linear-gradient(
            180deg,
            rgba(23, 22, 18, 0.2),
            rgba(23, 22, 18, 0) 45%
        ),
        linear-gradient(
            0deg,
            rgba(255, 255, 255, 0.85),
            rgba(255, 255, 255, 0) 52%
        );
}

.np-band-title {
    display: inline-block;
    padding-right: 18px;
    border-bottom: 0;
}

/* `auto-fit`, not `auto-fill`: a band of three under a sheet wide
   enough to hold four collapses the track nothing was set in, and the
   three stretch across the whole measure. With `auto-fill` the empty
   track stays open and the band ends on a gap where a fourth brief is
   not — the same hole the run's rounding exists to close, one row
   further down the page. */
.np-briefs-band {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 0 26px;
    border-top: 2px solid var(--np-ink);
}

/* No rule of its own. The band draws the black one above the line of
   briefs, and a hairline on each item put a second, softer rule
   directly under it — on every brief but the first, which is what made
   one corner of the band look lighter than the rest of it. */
.np-brief {
    min-width: 0;
    padding: 11px 0 12px;
}

.np-brief-kicker {
    display: block;
    margin-bottom: 4px;
    font-family: var(--np-furniture);
    font-size: 8.5px;
    font-weight: 600;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--np-ink-3);
}

.np-brief-text {
    font-family: var(--np-serif);
    font-size: 13.5px;
    line-height: 1.4;
    color: var(--np-ink);
}

.np-brief-link {
    color: var(--np-ink) !important;
    /* A brief that leads somewhere says so with a rule under the
       text, the way a printed cross-reference is underscored. */
    background-image: linear-gradient(var(--np-rule), var(--np-rule));
    background-repeat: no-repeat;
    background-position: 0 100%;
    background-size: 100% 1px;
    transition: background-size 0.15s ease;
}

.np-brief-link:hover,
.np-brief-link:focus-visible {
    background-image: linear-gradient(var(--np-ink), var(--np-ink));
    background-size: 100% 2px;
}

/* ── Back issues ───────────────────────────────────────────── */

/* A labelled rule, then the older editions set exactly like today's.
   The archive is a stack of the same paper — summarising it in a
   folded strip made the back catalogue look like a different
   product. */

.np-archive-rule {
    display: flex;
    align-items: center;
    gap: 14px;
    margin: 34px 0 18px;
    font-family: var(--np-furniture);
    font-size: 9.5px;
    font-weight: 600;
    letter-spacing: 0.26em;
    text-transform: uppercase;
    color: #7f8b93;
}

.np-archive-rule::before,
.np-archive-rule::after {
    content: "";
    flex: 1;
    height: 1px;
    background: #33414a;
}

/* ── Nothing to print yet ──────────────────────────────────── */

.np-empty {
    max-width: 520px;
    margin: 48px auto;
    padding: 34px 38px 36px;
    text-align: center;
    color: var(--np-ink);
    background-color: var(--np-paper);
    background-image: linear-gradient(
        180deg,
        var(--np-paper-hi),
        var(--np-paper) 160px
    );
    box-shadow: 0 16px 36px -16px rgba(0, 0, 0, 0.6);
}

.np-empty-rule {
    height: 3px;
    margin-bottom: 20px;
    background: var(--np-ink);
}

.np-empty-title {
    margin: 0 0 10px;
    font-family: var(--np-serif);
    font-size: 23px;
    font-weight: 700;
    letter-spacing: -0.01em;
    text-transform: uppercase;
}

.np-empty-body {
    margin: 0;
    font-family: var(--np-serif);
    font-size: 14.5px;
    line-height: 1.6;
    color: var(--np-ink-2);
}

/* ── Mood ──────────────────────────────────────────────────── */

/* A bad week yellows the paper a shade and a good one brightens it.
   The same sheet, printed on a different morning. */

.np-sheet.np-mood-crisis {
    --np-paper: #e8e2d4;
    --np-paper-hi: #f0ebe0;
}

.np-sheet.np-mood-triumph {
    --np-paper: #efece4;
    --np-paper-hi: #f8f6f0;
}

/* ── Marked for the reader ─────────────────────────────────── */

/* A player's press page is not a different newspaper. It is the same
   editions, whole, with his passages gone through by hand before the
   envelope was sealed — so nothing here dims, greys or hides the rest
   of the week. The club's news is still the club's news; somebody has
   simply been down the margin with a blue pencil first.

   Two marks, one instrument. The passage lifts off the sheet and takes
   a stroke down its margin; his name is scored wherever it is set. Both
   stay inside the story's own column: a cutting that overhung the
   gutter would cover the story beside it, and covering the rest of the
   paper is the one thing this page must never do. */

/* The bureau's slip, over the top edition. It sits on the desk rather
   than on newsprint, so it is signed in the lighter wax — the same hand
   reads differently off the paper. */
.np-slip {
    display: flex;
    align-items: center;
    gap: 14px;
    margin: 0 0 16px;
    font-family: var(--np-furniture);
    font-size: 9.5px;
    font-weight: 600;
    letter-spacing: 0.26em;
    text-transform: uppercase;
    color: var(--np-pencil-lit);
}

.np-slip::before {
    content: "";
    flex: 0 0 38px;
    height: 3px;
    border-radius: 2px;
    background-image: linear-gradient(
        90deg,
        rgba(138, 171, 226, 0),
        var(--np-pencil-lit) 20%,
        var(--np-pencil-lit) 74%,
        rgba(138, 171, 226, 0)
    );
}

/* A marked passage. `isolation` is load-bearing: the lift and the
   stroke are drawn behind the type at a negative z-index, and with no
   stacking context of their own they would fall behind the sheet they
   are drawn on and vanish. */
.np-cut {
    --np-cut-margin: 0px;
    /* How far past the foot of the type the lift is drawn, so a cutting
       has air under it. Named because the run has to hold the space it
       carries for the row beneath clear of exactly this much. */
    --np-cut-air: 14px;
    /* The same air past the last word, and nothing by default: most
       columns already pad away from their own right edge for the
       gutter, so the lift drawn out to that edge is standing in paper
       the column has paid for. The ones that pad the other way have
       none to stand in — their type ends on the lift's own edge, and
       every line of it does, because the copy is justified. Those hand
       this the reach. */
    --np-cut-reach: 0px;
    position: relative;
    isolation: isolate;
}

/* The lift. The passage sits on brighter stock than the sheet around
   it and the light falls away underneath — that is the whole of the
   effect, and the reason it is a shadow and not a tint. A coloured
   field behind the type would be a highlighter, and a highlighter is
   not something a clippings bureau owned.

   Flat white over the paper rather than a fresh hex: the sheet's own
   `--np-paper-hi` shifts with the week's mood, and it is already what
   the top of the sheet is printed on — a cutting near the nameplate
   set in that colour would be invisible, which is precisely where the
   lead sits. The wash keeps the mood and clears the gradient. */
.np-cut::before {
    content: "";
    position: absolute;
    z-index: -1;
    inset: -12px calc(var(--np-cut-reach) * -1) calc(var(--np-cut-air) * -1) 0;
    pointer-events: none;
    background-color: var(--np-paper-hi);
    background-image: linear-gradient(
        rgba(255, 255, 255, 0.44),
        rgba(255, 255, 255, 0.44)
    );
    box-shadow:
        0 1px 0 rgba(255, 255, 255, 0.7) inset,
        0 14px 28px -16px rgba(23, 22, 18, 0.55),
        0 2px 6px -4px rgba(23, 22, 18, 0.4);
}

/* The stroke down the margin. Wax never lays down evenly: it bites at
   the top of a passage, skips once on the way down and trails off. */
.np-cut::after {
    content: "";
    position: absolute;
    z-index: -1;
    top: -4px;
    bottom: -6px;
    left: var(--np-cut-margin);
    width: 3px;
    pointer-events: none;
    border-radius: 2px;
    background-image: linear-gradient(
        180deg,
        rgba(39, 68, 126, 0),
        var(--np-pencil) 7%,
        var(--np-pencil) 36%,
        var(--np-pencil-soft) 48%,
        var(--np-pencil) 61%,
        var(--np-pencil) 93%,
        rgba(39, 68, 126, 0)
    );
    /* Wax leaves a halo where it dragged. Without it the stroke is a
       crisp 3px bar, which is a user interface and not a pencil. */
    box-shadow: 0 0 3px rgba(39, 68, 126, 0.32);
}

/* The copy steps in to leave the stroke its margin. Where that margin
   begins depends on the column: an inner one already pads away from its
   gutter rule, and the mark belongs inside that padding rather than
   drawn across the printed line.

   These two selectors score (0,3,0) — the same as the gutter rules they
   have to beat — so they must stay AFTER them in the sheet. Set any
   earlier and the stroke lands on top of the first word. */
.np-splits > .np-split.np-cut,
.np-run > .np-split.np-cut {
    padding-left: calc(var(--np-cut-margin) + 17px);
}

.np-splits > .np-split.np-cut:nth-child(2n),
.np-run > .np-split.np-cut:not(:nth-child(3n + 1)) {
    --np-cut-margin: 26px;
}

/* Every cutting that ends a row, plus the lead — which is set to the
   whole of the main column and so ends one by itself. A column pads on
   the side its gutter rule is on, and these have theirs on the left:
   there is no padding at all between their last word and the edge of
   the paper it is printed on, which is the one way a cutting can read
   as having clipped the story rather than lifted it.

   So the air comes from the margin beyond the column instead, and each
   of these has one to take it from: `.np-main`'s 28px gutter to the
   rail for the three inside it, and the sheet's own 34px for the last
   column of the run. A cutting is a piece of paper laid on the page —
   overhanging the gutter is what one does. Crossing into the next
   column of type is not, which is why the columns that pad right are
   left flush and take their air from that padding. */
.np-lead.np-cut,
.np-splits > .np-split.np-cut:nth-child(2n),
.np-splits > .np-split.np-cut:only-child,
.np-run > .np-split.np-cut:nth-child(3n) {
    --np-cut-reach: var(--np-cut-air);
}

.np-lead.np-cut {
    padding-left: 17px;
}

/* A story in the run stands on shared row tracks, and the space it
   holds for the row beneath it is inside its own box rather than in a
   gutter between the two. So the lift stops short of the foot of that
   box by the space, keeping the air under the type it was drawn for and
   nothing more: bled the whole way it would cross into the row below
   and take that story's kicker into the cutting. The last row carries
   no space for anybody and keeps the plain bleed. */
.np-run > .np-split.np-cut:not(:nth-last-child(-n + 3))::before {
    bottom: calc(var(--np-run-space) - var(--np-cut-air));
}

/* A brief is one line in a band of them. It takes the lift and nothing
   else: a 3px stroke beside 13px of type is a mark bigger than the
   thing it marks. The band's column gap is real empty space, so the
   lift can breathe sideways into it without reaching a neighbour. */
.np-cut-brief::before {
    inset: -3px -12px -5px;
}

.np-cut-brief::after {
    display: none;
}

/* The face on the front page is his. The rule the caption already
   hangs from is scored in the pencil instead of printed in the plate —
   nothing is drawn over the photograph and nothing is rounded.
   (An earlier pass ringed the face the way a subscriber ringed his own
   cuttings. It crossed the corners of the plate and the user asked for
   it out; a photograph on this page is a square of newsprint and stays
   one.) */
.np-cut-figure .np-caption {
    border-top-color: var(--np-pencil);
}

/* His name, wherever it is set. A printed cross-reference is a hairline
   in the plate's own grey; a marked one is the pencil, and thicker — so
   the two read apart on weight alone, which is what a reader who cannot
   see the blue needs them to do. */
a.np-story-link.np-mark:link,
a.np-story-link.np-mark:visited,
a.np-story-link.np-mark:hover,
a.np-story-link.np-mark:focus-visible {
    text-decoration: underline !important;
    text-decoration-thickness: 2px !important;
    text-decoration-color: var(--np-pencil) !important;
    text-underline-offset: 0.16em;
}

/* A headline is set at three times the size of the copy under it, and a
   2px rule beneath 46px of type reads as a hairline again. */
.np-headline a.np-story-link.np-mark:link,
.np-headline a.np-story-link.np-mark:visited,
.np-headline a.np-story-link.np-mark:hover,
.np-headline a.np-story-link.np-mark:focus-visible {
    text-decoration-thickness: 3px !important;
}

/* The same name made in the middle of a paragraph, where a rule alone
   is not enough to find it — several other names are ruled the same way
   in the same sentence. The wax lies over the word as well as under it.
   Drawn with background layers rather than `text-decoration`, for the
   reason set out over the in-copy link rule above. */
a.np-prose-link.np-mark:link,
a.np-prose-link.np-mark:visited,
.np-brief-link.np-mark {
    padding: 0 3px;
    margin: 0 -3px;
    background-image:
        linear-gradient(var(--np-pencil), var(--np-pencil)),
        linear-gradient(var(--np-pencil-wash), var(--np-pencil-wash));
    background-repeat: no-repeat;
    background-position:
        0 100%,
        0 0;
    background-size:
        100% 2px,
        100% 100%;
}

a.np-prose-link.np-mark:hover,
a.np-prose-link.np-mark:focus-visible,
.np-brief-link.np-mark:hover,
.np-brief-link.np-mark:focus-visible {
    background-image:
        linear-gradient(var(--np-pencil), var(--np-pencil)),
        linear-gradient(var(--np-pencil-wash), var(--np-pencil-wash));
    background-size:
        100% 3px,
        100% 100%;
}

/* ── Narrower screens ──────────────────────────────────────── */

@media (max-width: 1100px) {
    /* The rail narrows; it does not unship. Sent below the main column
       it carried the photograph down past the lead and both splits — a
       face printed the better part of a screen under the nameplate it
       belongs to, which reads as a plate filed with the wrong story.
       The track keeps roughly the share of the measure the rail holds
       on the wide sheet, so the face stays beside the front page all
       the way to the phone break.

       `:not(.np-body-full)` because this and the full-measure rule both
       score (0,1,0) and this one is set later: without it a week with
       neither a face nor a fixture list would open an empty column and
       rule off against nothing. */
    /* One figure for the photograph's column, because the run has to
       carry the same one down the sheet — see `.np-run` on the wide
       sheet, where the two are counted in `fr` instead. */
    .np-desk {
        --np-rail-track: clamp(150px, 22vw, 215px);
    }

    .np-body:not(.np-body-full) {
        grid-template-columns: minmax(0, 1fr) var(--np-rail-track);
    }

    /* The rail is a fixed track now rather than a share of the measure,
       so the run's last column is that track and the two news columns
       divide what is left — which is exactly what `.np-main` beside them
       is doing. Every rule still falls on one line. */
    .np-run {
        grid-template-columns:
            minmax(0, 1fr)
            minmax(0, 1fr)
            var(--np-rail-track);
    }

    .np-main {
        padding-right: 24px;
    }

    /* Tracks the padding above: half of it, plus the rule. */
    .np-splits {
        --np-splits-inset: calc((24px + 1px) / 2);
    }

    .np-rail {
        padding-left: 22px;
    }

    /* The run keeps its three columns all the way down to the phone
       break. The typesetter rounds the run up to whole rows of
       `PressDesk::RUN_COLUMNS`, so a page set two-wide here would end
       on a story sitting alone beside an empty column — the exact hole
       the rounding exists to close. Three narrower columns of newsprint
       is the older and better answer anyway. */
}

@media (max-width: 900px) {
    /* Masthead on its own line, ears beneath it. Trying to keep three
       things side by side here is what produced the overlap. */
    .np-nameplate {
        grid-template-columns: minmax(0, 1fr);
        gap: 8px;
        text-align: center;
    }

    .np-ear,
    .np-ear-right {
        justify-content: center;
        text-align: center;
    }

    .np-folio {
        flex-direction: column;
        align-items: center;
        gap: 10px;
    }

    .np-folio > span:first-child {
        white-space: normal;
        text-align: center;
    }
}

@media (max-width: 640px) {
    .np-desk {
        --np-pad: 18px;
    }

    .np-sheet {
        padding-top: 18px;
    }

    /* One column, and the rail stops being one. Stacking the rail whole
       would print last week's scores above the headline, so it is
       dissolved instead: `display: contents` hands the face and the
       results column straight to the sheet's grid, and the face is
       ordered up under the folio — where a front page has always
       printed the man the edition is about. A smaller plate than the
       rail carried, because it now stands between the nameplate and the
       headline and must not push the headline off the first screen.

       Carries the same `:not(.np-body-full)` as the rule it undoes, and
       must: the 1100 block is open at this width too, and at (0,2,0) it
       outranks a bare `.np-body` however late that is set — which would
       leave a phone on the two-column body this rule exists to fold.
       A full-measure week needs nothing here; it is already one column. */
    .np-body:not(.np-body-full) {
        grid-template-columns: minmax(0, 1fr);
    }

    .np-main {
        padding-right: 0;
        border-right: 0;
    }

    /* Beaten by `.np-body-full .np-rail { display: none }` at (0,2,0),
       which is what an empty rail still wants. */
    .np-rail {
        display: contents;
    }

    .np-figure {
        order: -1;
        max-width: 200px;
        margin: 0 auto 20px;
    }

    /* The rule the rail used to hang from. It belongs to the results
       column now: with the face moved upstairs, the box is the only
       thing standing below the front block. */
    .np-box {
        margin-top: 24px;
        padding-top: 20px;
        border-top: 2px solid var(--np-ink);
    }

    .np-splits,
    .np-run {
        grid-template-columns: minmax(0, 1fr);
    }

    /* One column, so nothing stands beside a story to be lined up with
       — and the shared tracks would fight the rule that falls between
       one story and the next below, which a story can only pad away
       from as a box of its own. Back to a block.

       Stacked, the separation IS that rule, so a story carries no space
       for the row beneath it. The body's margin and the lift's reach
       below the type are both spent out of this, so zeroing it puts
       both back to what they are anywhere else on the sheet. `0px`
       rather than `0`: the lift subtracts a length from it, and
       `calc(0 - 14px)` is not one. */
    .np-run {
        --np-run-space: 0px;
    }

    .np-splits > .np-split,
    .np-run > .np-split {
        display: block;
        grid-row: auto;
    }

    /* One column has no gutters to pad away from.

       `:nth-child(n)` matches everything and is here for its weight
       alone: the gutter rules it undoes score (0,3,0) through their
       `:not()`, and a media query adds nothing to specificity — a bare
       `.np-run > .np-split` would lose to them however late it is set,
       leaving a vertical rule down a page with one column on it. */
    .np-splits > .np-split:nth-child(n),
    .np-run > .np-split:nth-child(n) {
        padding-right: 0;
        padding-left: 0;
        border-left: 0;
    }

    /* The rule that stood between columns lies down between stories. */
    .np-splits > .np-split + .np-split,
    .np-run > .np-split + .np-split {
        margin-top: 18px;
        padding-top: 16px;
        border-top: 1px solid var(--np-rule);
    }

    /* Stacked, the briefs need the separator back — in one column it
       falls between two briefs rather than under the band's own rule. */
    .np-brief + .np-brief {
        border-top: 1px solid var(--np-rule-soft);
    }

    /* One column has no gutter, so the stroke's margin goes back to the
       measure it was taken from — and the air on the right comes out of
       it too rather than being reached for. There is nothing to reach
       into here: past a stacked story is the edge of the sheet, 18px of
       it, and a lift standing in that stands half off the page. The two
       insets match instead, which is what makes a stacked cutting read
       as a card rather than as a column that lost its right edge.

       Weighted to (0,4,0) for the same reason the gutter reset above it
       carries `:nth-child(n)`: a media query adds nothing to
       specificity, and the wide-screen rules these undo score (0,3,0). */
    .np-splits > .np-split.np-cut:nth-child(n),
    .np-run > .np-split.np-cut:nth-child(n) {
        --np-cut-margin: 0px;
        --np-cut-reach: 0px;
        padding-left: 17px;
        padding-right: 17px;
    }

    /* The lead is the one cutting that is not in a column, so the reset
       above passes it by — but stacked it runs the same measure as the
       rest, with the same sheet edge and nothing else beyond it. */
    .np-lead.np-cut {
        --np-cut-reach: 0px;
        padding-right: 17px;
    }

    /* A stacked story rules off from the one above it, and that rule is
       painted before the lift is — so a lift that bled upwards would
       rub it out. It stops at the rule instead. */
    .np-splits > .np-split.np-cut:not(:first-child)::before,
    .np-run > .np-split.np-cut:not(:first-child)::before {
        top: 0;
    }

    .np-lead-body,
    .np-split-body {
        text-align: left;
    }
}

@media (prefers-reduced-motion: reduce) {
    .np-brief-link,
    a.np-prose-link:link,
    a.np-prose-link:visited {
        transition: none;
    }
}

/* ============================================
   ABOUT PAGE

   The only page in the app with no data behind
   it, so it is set as a document rather than a
   dashboard: one measure, a rule per section,
   and the chrome's own vocabulary turned up a
   size. Green marks what is running, amber
   marks what ends.
   ============================================ */

.fm-ab-page {
    padding-bottom: 44px;
}

.fm-ab-doc {
    max-width: 1060px;
    margin: 0 auto;
}

/* --- Hero ------------------------------------------------ */

.fm-ab-hero {
    padding: 30px 0 32px;
    border-bottom: 1px solid #263340;
}

/* The page opens on the sentence itself — an eyebrow above it would
   only repeat the name the sentence starts with. */
.fm-ab-lede {
    margin: 0;
    max-width: 34ch;
    font-size: clamp(22px, 2.7vw, 34px);
    font-weight: 300;
    line-height: 1.25;
    letter-spacing: -0.02em;
    color: #e8eff5;
}

.fm-ab-standfirst {
    margin: 18px 0 0;
    max-width: 62ch;
    font-size: 15.5px;
    font-weight: 300;
    line-height: 1.68;
    color: #93a4b1;
}

.fm-ab-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 24px 0 0;
    padding: 0;
    list-style: none;
}

.fm-ab-chip {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 5px 12px;
    border: 1px solid #263340;
    border-radius: 999px;
    background: #1a232b;
    font-size: 10.5px;
    font-weight: 600;
    letter-spacing: 0.6px;
    text-transform: uppercase;
    color: #8a99a6;
}

.fm-ab-chip i {
    font-size: 10px;
    color: #4a9d5b;
}

.fm-ab-chip-ver {
    color: #b0bac2;
    letter-spacing: 0.8px;
    text-transform: none;
}

/* The live dot the process button wears, at rest: the version you are
   reading is the version that is running. */
.fm-ab-chip-dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #4a9d5b;
    box-shadow: 0 0 0 3px rgba(74, 157, 91, 0.16);
}

/* --- Sections -------------------------------------------- */

.fm-ab-sec {
    padding-top: 30px;
}

.fm-ab-sec + .fm-ab-sec {
    margin-top: 30px;
    border-top: 1px solid #1f2a32;
}

.fm-ab-sec-head {
    display: flex;
    align-items: center;
    gap: 11px;
    margin-bottom: 20px;
}

/* The rule runs out of the title and fades — a section opening,
   not a box. */
.fm-ab-sec-head::after {
    content: "";
    flex: 1 1 auto;
    height: 1px;
    background: linear-gradient(90deg, #263340 0%, rgba(38, 51, 64, 0) 100%);
}

.fm-ab-sec-ic {
    flex: 0 0 26px;
    width: 26px;
    height: 26px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #2a3843;
    border-radius: 3px;
    background: #1f2b34;
    color: #4a9d5b;
    font-size: 11px;
}

.fm-ab-sec-head h3 {
    margin: 0;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 1.4px;
    text-transform: uppercase;
    color: #c8d6e0;
}

.fm-ab-split {
    display: grid;
    grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr);
    gap: 28px;
    align-items: start;
}

.fm-ab-prose p {
    margin: 0 0 13px;
    font-size: 14.5px;
    font-weight: 300;
    line-height: 1.75;
    color: #93a4b1;
}

.fm-ab-prose p:last-child {
    margin-bottom: 0;
}

.fm-ab-prose .fm-ab-p-lead {
    margin-bottom: 16px;
    font-size: 17px;
    font-weight: 400;
    line-height: 1.55;
    color: #d3dde5;
}

.fm-ab-prose .fm-ab-p-small {
    font-size: 13px;
    color: #74838f;
}

.fm-ab-prose-wide {
    max-width: 74ch;
}

.fm-ab-aside {
    padding: 14px 16px 16px;
    border: 1px solid #263340;
    border-radius: 4px;
    background: linear-gradient(180deg, #1c2830 0%, #192228 100%);
}

.fm-ab-aside-title {
    margin-bottom: 12px;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 1.2px;
    text-transform: uppercase;
    color: #546a78;
}

.fm-ab-list {
    margin: 0;
    padding: 0;
    list-style: none;
}

.fm-ab-list li {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 8px 0;
    border-top: 1px solid #212d36;
    font-size: 13px;
    line-height: 1.5;
    color: #a9b8c4;
}

.fm-ab-list li:first-child {
    padding-top: 0;
    border-top: 0;
}

.fm-ab-list li:last-child {
    padding-bottom: 0;
}

.fm-ab-list i {
    flex: 0 0 14px;
    width: 14px;
    margin-top: 3px;
    text-align: center;
    font-size: 11px;
    color: #4a9d5b;
}

/* The questions sit under the copy that earned them, so they need the
   gap of a new thought rather than the gap of a new paragraph. */
.fm-ab-questions-block {
    margin-top: 24px;
}

.fm-ab-questions {
    margin: 0;
    padding: 0;
    list-style: none;
}

.fm-ab-questions li {
    position: relative;
    margin-bottom: 15px;
    padding-left: 15px;
    font-size: 13.5px;
    font-weight: 300;
    line-height: 1.55;
    color: #a9b8c4;
}

.fm-ab-questions li:last-child {
    margin-bottom: 0;
}

.fm-ab-questions li::before {
    content: "";
    position: absolute;
    top: 4px;
    bottom: 4px;
    left: 0;
    width: 2px;
    border-radius: 1px;
    background: #2f6f43;
}

/* --- The life of one session ----------------------------- */

/* Four live stops on a solid line, then a dashed stub into a
   hollow node. Closing the app is the only step that leaves
   nothing behind, so it is the only one drawn as an outline. */

.fm-ab-run {
    --ab-run-gap: 22px;
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: var(--ab-run-gap);
    margin: 28px 0 0;
    padding: 0;
    list-style: none;
}

.fm-ab-run-step {
    position: relative;
    padding-top: 40px;
}

.fm-ab-run-step::after {
    content: "";
    position: absolute;
    top: 13px;
    left: 36px;
    right: calc(-1 * var(--ab-run-gap));
    height: 2px;
    background: #35664a;
    transform-origin: left center;
}

.fm-ab-run-step-last::after {
    height: 0;
    background: none;
    border-top: 2px dashed #6b4f24;
}

.fm-ab-run-step-end::after {
    content: none;
}

.fm-ab-run-node {
    position: absolute;
    top: 0;
    left: 0;
    width: 28px;
    height: 28px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #35664a;
    border-radius: 50%;
    background: #1b2a22;
    color: #5cb86c;
    font-size: 11px;
}

.fm-ab-run-step-end .fm-ab-run-node {
    border-style: dashed;
    border-color: #6b4f24;
    background: transparent;
    color: #b7893f;
}

.fm-ab-run-title {
    margin-bottom: 6px;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.7px;
    text-transform: uppercase;
    color: #c3d0da;
    /* German and French step names run to two lines in five columns;
       balanced breaks keep the second line from being one orphan word. */
    text-wrap: balance;
}

.fm-ab-run-step-end .fm-ab-run-title {
    color: #b7893f;
}

.fm-ab-run-note {
    font-size: 12.5px;
    font-weight: 300;
    line-height: 1.55;
    color: #7e8f9c;
}

@media (prefers-reduced-motion: no-preference) {
    .fm-ab-run-step::after {
        animation: fm-ab-draw-x 0.5s ease-out both;
    }

    .fm-ab-run-step:nth-child(1)::after {
        animation-delay: 0.12s;
    }

    .fm-ab-run-step:nth-child(2)::after {
        animation-delay: 0.32s;
    }

    .fm-ab-run-step:nth-child(3)::after {
        animation-delay: 0.52s;
    }

    .fm-ab-run-step:nth-child(4)::after {
        animation-delay: 0.72s;
    }
}

@keyframes fm-ab-draw-x {
    from {
        transform: scaleX(0);
    }

    to {
        transform: scaleX(1);
    }
}

@keyframes fm-ab-draw-y {
    from {
        transform: scaleY(0);
    }

    to {
        transform: scaleY(1);
    }
}

/* --- Callouts -------------------------------------------- */

.fm-ab-note {
    display: flex;
    gap: 14px;
    margin-top: 26px;
    padding: 15px 18px;
    border: 1px solid #2a3843;
    border-left: 2px solid #b7893f;
    border-radius: 4px;
    background:
        linear-gradient(90deg, rgba(183, 137, 63, 0.07) 0%, rgba(183, 137, 63, 0) 45%),
        #1a232b;
}

.fm-ab-note > i {
    margin-top: 2px;
    font-size: 15px;
    color: #b7893f;
}

.fm-ab-note-body {
    flex: 1 1 auto;
    min-width: 0;
}

/* The note names a repository — this is the way to it. It sits at the
   end of the row so the copy keeps its own measure. */
.fm-ab-note-link {
    display: flex;
    flex: 0 0 auto;
    align-self: center;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    margin-left: auto;
    border: 1px solid #2a3843;
    border-radius: 4px;
    background: #161e25;
    font-size: 16px;
    color: #6c8290;
    transition: color 0.15s, border-color 0.15s, background 0.15s;
}

.fm-ab-note-link:hover {
    border-color: #35664a;
    background: #18232a;
    color: #5cb86c;
}

.fm-ab-note-link:focus-visible {
    outline: 2px solid #4a9eff;
    outline-offset: 2px;
}

.fm-ab-note-title {
    margin-bottom: 6px;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.8px;
    text-transform: uppercase;
    color: #d8b26a;
}

.fm-ab-note p {
    margin: 0;
    max-width: 76ch;
    font-size: 13.5px;
    font-weight: 300;
    line-height: 1.65;
    color: #9aa9b5;
}

/* The database is the one thing that survives the process,
   so its callout is drawn in the running colour. */
.fm-ab-note-data {
    border-left-color: #4a9d5b;
    background:
        linear-gradient(90deg, rgba(74, 157, 91, 0.07) 0%, rgba(74, 157, 91, 0) 45%),
        #1a232b;
}

.fm-ab-note-data > i {
    color: #4a9d5b;
}

.fm-ab-note-data .fm-ab-note-title {
    color: #7fd28b;
}

/* --- Running it locally ---------------------------------- */

.fm-ab-split-run {
    margin-top: 26px;
}

/* No window chrome and no traffic lights: the prompt is the only
   signal the block needs to read as a terminal. */
.fm-ab-term {
    align-self: start;
    padding: 16px 18px;
    border: 1px solid #263340;
    border-left: 2px solid #2c3c4a;
    border-radius: 4px;
    background: #12191f;
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: 12.5px;
    line-height: 1.95;
    overflow-x: auto;
}

.fm-ab-term-line {
    display: flex;
    gap: 10px;
    color: #c3d0da;
}

.fm-ab-term-sign {
    flex: 0 0 auto;
    color: #4a9d5b;
}

.fm-ab-term-line-out {
    color: #7a8a96;
}

.fm-ab-term-line-out .fm-ab-term-sign {
    color: #4a9eff;
}

/* --- Author ---------------------------------------------- */

.fm-ab-card {
    padding: 20px 22px 22px;
    border: 1px solid #263340;
    border-radius: 4px;
    background: linear-gradient(180deg, #1c2830 0%, #192228 100%);
}

.fm-ab-card-name {
    font-size: 24px;
    font-weight: 300;
    letter-spacing: -0.01em;
    color: #e8eff5;
}

.fm-ab-card-meta {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 8px;
    font-size: 12px;
    letter-spacing: 0.3px;
    color: #7e8f9c;
}

.fm-ab-card-meta .flag {
    flex: 0 0 auto;
    width: 17px;
    height: 13px;
    border-radius: 2px;
}

.fm-ab-card-sep {
    width: 3px;
    height: 3px;
    border-radius: 50%;
    background: #3c4c58;
}

.fm-ab-card-text {
    margin: 17px 0 0;
    max-width: 70ch;
    font-size: 14px;
    font-weight: 300;
    line-height: 1.75;
    color: #9aa9b5;
}

/* Flex, not a stretched grid: one contact should sit at its own width
   rather than run the length of the card. */
.fm-ab-links {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 20px;
}

.fm-ab-link {
    display: flex;
    flex: 0 1 280px;
    align-items: center;
    gap: 12px;
    padding: 11px 14px;
    border: 1px solid #263340;
    border-radius: 4px;
    background: #161e25;
    transition: border-color 0.15s, background 0.15s;
}

.fm-ab-link:hover {
    border-color: #35664a;
    background: #18232a;
}

.fm-ab-link > i {
    flex: 0 0 18px;
    width: 18px;
    text-align: center;
    font-size: 15px;
    color: #6c8290;
    transition: color 0.15s;
}

.fm-ab-link:hover > i {
    color: #5cb86c;
}

.fm-ab-link-body {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.fm-ab-link-label {
    font-size: 9.5px;
    font-weight: 700;
    letter-spacing: 1.1px;
    text-transform: uppercase;
    color: #546a78;
}

.fm-ab-link-value {
    overflow: hidden;
    font-size: 13px;
    color: #c3d0da;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fm-ab-link:focus-visible {
    outline: 2px solid #4a9eff;
    outline-offset: 2px;
}

/* --- Narrow ---------------------------------------------- */

@media (max-width: 900px) {
    .fm-ab-split {
        grid-template-columns: minmax(0, 1fr);
        gap: 22px;
    }
}

/* Below this the five stops stop fitting side by side. The
   line turns and runs down the page instead — same drawing,
   same dashed tail into the hollow node. */
@media (max-width: 980px) {
    .fm-ab-run {
        grid-template-columns: minmax(0, 1fr);
        gap: 0;
    }

    .fm-ab-run-step {
        padding: 0 0 24px 42px;
    }

    .fm-ab-run-step:last-child {
        padding-bottom: 0;
    }

    .fm-ab-run-step::after {
        top: 34px;
        right: auto;
        bottom: 8px;
        left: 13px;
        width: 2px;
        height: auto;
        transform-origin: center top;
    }

    .fm-ab-run-step-last::after {
        width: 0;
        border-top: 0;
        border-left: 2px dashed #6b4f24;
    }
}

@media (prefers-reduced-motion: no-preference) and (max-width: 980px) {
    .fm-ab-run-step::after {
        animation-name: fm-ab-draw-y;
    }
}

@media (max-width: 560px) {
    .fm-ab-hero {
        padding: 22px 0 26px;
    }

    .fm-ab-lede {
        max-width: none;
    }

    .fm-ab-note {
        padding: 14px 15px;
    }

    .fm-ab-card {
        padding: 18px 16px 20px;
    }

    .fm-ab-card-text,
    .fm-ab-standfirst {
        font-size: 14px;
    }
}


/* === images.css === */
.player-default-photo {
    background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALQAAAC0CAYAAAA9zQYyAAAAB3RJTUUH2wIKFwkFGZEPewAAAAlwSFlzAAAK8AAACvABQqw0mAAAAARnQU1BAACxjwv8YQUAAHjNSURBVHja7FxbjCTnWf3qr3tV3+a2M7M767W9TnwhiddsnFhRlBUJWLGEsRNhgUAgEZC4CvkFgUAo4hHxgFDeeIjEEw88RHlARJg8+DkKCcYxxE5gjWKcvc5Md1fXvYpzvn8MEggFjE17dutbt2emu6q6uup85z/f+f6/RYYYYoghhhhiiCGGGGKIIYYYYoghhhhiiCGGGGKIIYYYYoghhhhiiCGGGGKIIYYYYoghhhhiiCGGGGKItYez7hM4zXH58n4S5cV2W7aBhCKTnYmMwplXZ8WsLFemxjZNXkvdNIt6fvjdr78pq//lW5jPX7li/uDFF5t1f9bTEt66T+C0xeX7N6bT1P1QGIYjL4rOS5o+3ncyNa4jXhBJU3ZBUVS7bSOeHwYSjID0vv9+cObsV89/MPyO9F3L47h4APRSrubSlo30nmS+OP9aTm5cffFFUQB/nv87c8as+zOfphgY+n8YT35k51Hj+A97fnzROObHXT8YB0E4kl722r4J+66Ruu5kcZxLscolikIZzabiB4G0XQXEymHv9Le6rldA9z2eau3DwT/XdzIx5h9d17zoB2FmAPle3KZu++986a+/+TJ2add9DU5DDID+AfHJS3uPRHFwue/bp1zP/0gQjifGNduOA0rue6nLQpq6FsclSB1ZZfi7aSUEO4dJLI4x0la1btNi+w4w7fHT4KeHQ/iBC2b3dTsjzsoRc0Oka1wTYPwM26YuX22b4s+NF/7Nl1546fq6r8d7PQbJ8d/EYxd3HpjNop+MY/+TbVu9rxfZBiOngKNTZCsAtCGC8V8HWgDD9oQoMI59AwIUYK2rUrq2A3M32L6TjmrDNRJEvvhhKIHvAciOsnWDxDCOl/gmutDVvbROKcZFCpj2gue6SKLuDRx6APQPiIGh/1NcemBvZ3MUPBPE3pNd3XzCDc0mkQbMOr4fQu92ki8zgLUR1wO7+pYTegK3aaQ1riRJBAnhgWdbbFdJ07ZkXzznSxDHuo/BAXn1O5UdpbTYl6LCtKF4OEYrlVRFoQkDHZ6Fafy3YTz+etUGlCbfujmXv3hxKBb/SwyA/o8wH79nOjWp/2tBFP4S2PYc9K4XJr5jAoAT0lfVbw3wduBhY0HcArQdSNrzXYAVYIwiof6AVBAyeVnWEoSepKMUrJxCcojk2QKPXFoAPUBSxAmKR0gUB5JFGhSXfoKHUTA3eNMWlI3k6YIgbfOi7H0/vrq3f89XjXFf+JM//bMv45D9ui/eeyUGQOMaXHlkJ42C9nPA6afq2nkcYN53CdA0EYK5ARt3QC2KQZUWlAmO6yqMKCN6vuZ5kLyBPl+VYGUw84mhASbHaygOqa2PbmeyRNFIsEaQJpNxJElqWZvM7Hk+ksVIp8fuwdI1Cs1MKhwvwLlsbG/JzplzMp8fdfPj298cTbf+cK8Ov/yFr3ylXPeFfC/EXQ3ojz24NU4S/yD05ef7pvvpuurv9cchtCsKuQaFGx0KAIvygkzpOz5A54FZ7UhPoDI6yIUOetrxDLYTWS1XYFuROI1Q9PlSFhWeq2SxLGUFLR1FRqZJqNIkxO9UH5QnbUuFTvbv9D2Xy05Wq0aKCqUkRwHPkd2tEY47lvnhkdx3/3311u7Zr1d58cffO3r9L1944aVs3dd03XHXAvpHL98/9YP2s33T/AzQ9LG66OK2c50g8RXQvToSDiRDIzWkgQdpYMC+ZE28pBeO4zx/75WqUcgBda3+bJXNfQC+BXtnWY2HTYJR6kkCaRKxMATjEqkNEqICgPOCelskxPNlBWbOWgWyC8ZOkAB0RFpImWzVyr3n9+SBhx4G4Bflajn/2ni6+YXd8d5f/dEXv7hY97VdZ7jrPoF1xMc/ON0ITf8sQPurYMWPglojLwwdsnHveMrOBYb6VV7j9073aaoe4KmlBsLCkC6GURAW0Mg1pEUNPV2q3SwAMl4H7eY4xvG8VIZ1IVNGqZUYBDolTKManMVkp8epahaPnkQhwOsFwlRxwNizSSq7Z7ZkPI7FpxSCPNna3cEIYWSVLbwgjM9MNzfOFVIt339u+82XX309X/c1XlfcdYB+5sqFmWnkWQzpvwzwXTI+lG+cKACrqgW2XdW6OQCm7oShZhZtmrBmS9JAAU2mLqGVS/rLLVm20+cMgEvpUJSUCi0zROLIk/EokBQSg0yviQA2rmjn4T0IaoKZbE+wk73V0nP4t5Ht7U1JxxNo8wLHa2Qym0iH/apiJcloIpPJzFscH5+5ee3Nh7rejO/b36iD0da1Gzdu3HXNmLsK0D/xsa1xa8JnHel/BaLhElg5oh/cEVDKkJ0O+wQaCz+X9pkyaQvW9MGQEfStA/lQWrZW7dwpEMnAnktNjUKusYzN55IY+41C3Z/JQWejKMnajf7eAfyqv7Gf71rLj5KjZgcR7DwapUiiBO9VydHhoRaH6XikUoWiKAwTsHQmV//pqp8tl7vjcfoBvHbR67LoAw/c4732L9feWPd1//+MuwbQTzwhcdhNP9NW3a8DC4+5fhCxs1eVAB8eJdiUbMsGCIGszKwVhgU2h3pKg+MlNWwFoDfK3NzGMiukwIlmVqbGCwHYlWzuuvYy12DhFRKmbiwbM6i/yepkZnYX6WQwgUrIFf4eJzGO2VJaYBSorfeN4/EnPoIWqIc3b8j1m4coRDtnMknSja3tc9u7Zz8cJ+n9H370wavfePm1uwbUdwugzeWDC88BwM9D515yjBuywCsLO/Q7UK4NdHMJIIVRoLJACz4WZAClwYMS5GhRKtgIVN9zVKa4ri3+yMZkeNXLrgOWDRR4XWuLPh6QQKY2J/PyNW1348GEYXeRAKYcmS9zTRBKD3YZy6LQxguLyCRJTip5PUOptfnS6jFbsHgYurJ39sDfP3duitM7KLLinocvnt2672BcvPrP16+t+0a823FXtL6f/uiFZzvH/a2mbn7IRzhgW+pfbYh4vjJn01uQkTnLtlaguqFrQbgqtYBzPcoKo4zKBCCIyMCUCmTtRdbQQpYocPG8p5gry04lCDU2E8A6fSfJgG1dx9WEsc6KWL/bUKuHauEtFpnV1SETzRPP9/UzUaassiVGlFZGk7Fs4vVb128C/DlGnZXkq0yOD2+Njg+vPTneOPP+vdnFY5GXX1r3vXi3405naPfpH7n/M36U/n5TuR+C3vWMb9QXLnMwHos7lE10JwzdDVByrq3qXlvVtO5KtrM7UUYOfetOFKWVJeM0RvFmFMxLHI9TSMepr681XXsiPYzafUY1tquygm4KAe6q1PBVe3NbSgrRwhN6G/+WGBEoSSbTWKKYrof1o9UhUc3faIPmLddkleVi8Pd4NEKS1nLj+1edpii9yWw7jsJo/76zswuTuLr1vWvZjXXfmHfthq/7BN6tuHLlQvTY+zY+4/vx7zRV+2ie5USVMm6WVXY+BVgxo+TgRA28VlQ1mM+o70sGtKBztaNHpLHVzYGersXGNIGu9mSJY62KRo8VAdxk3E5a618jGQIkQhyQxY11RiBLKjZmjKjc4IOgLJFIFQDtO2BobJflLE5rfS/Kj7qy+l51+CqXAq9TkkRRrAVttlzhvR0ZJYFq9krnWi+1czmabgbQ0xeQHJeQBFuzyPnum7eym3IHtszvSEA/+cTB5kYUfdZxgt+siupSscq93gVoAKR81Wqb2qGDQSYGI7KQqwAY1bIu2BGg1EIQ21FOULPq3KGuVfAn0Nn8qZ0/JATnJ6WxVW9lZWfgcR/OaOIUURfSoQNYc4wEGZ0RamiCn8ysYLYetLoivlHbkAVoHLmaNNTvFbuFPd+zkAVGBB5jMk50lFlBXlQ4Lh2RNE3VMeHoQu+EbXuCmt3FOBlFSNYLOK303GTyjdev356v+16903FHAfryviQ//NDBg9C1vwDEPd92/cPzo5XHQsyHpqXVRptMZ8OBObXrx8KK7TlhIeerfqV74fmOFoSO+sqdsiV9aFpqBMsSupoAD6GX6WiQzcm21LksHBkJ3jNgYUidQMnBbdlWx/688Cweu9Z60Ox4B76rBSlHi5rzOKDTKX/YfVTwd46OCFXdC6U0bUTq7iWKSJ7nDFpaJU2Fc9M52ieNYJ53SNkSU4rETV1udl39D7O9W995803p1n3f3sm4o5b3bJ+793w4nvx2PJr8hvTmntU8czl9k2xaQONylhwZjzPjWMwRKASIZ9j8gEYFqlig+b5RPcxJR7TFahSJlp1tG5rMbpsutkhsOitPrAlnZQkbI2FgO4rtScNkxJY3EsKj1Ud7j9KjbxXcIZ4koIUjR4+itRLIjh6sThvQqHuywmdxvV7YMY+wrWX+Sh0QOxO71QUHVWGno+pI4VJzY2TKM2Xy+dEhitzVvcYPf7GZHzy27nv2Tscdw9BcsLoz3fh0Mkp/1nWDc2VROkdHCy3KPDAlh/AwDLUpQUAXQMx8kevzvm+9Zrsu0FOHQ/UupADb1+pwcHWJ757M8egV2GRmsjs7fb4yq6MFJEEbh7bQU2YHsJg0hDu9bjI2GZnzP1zQvm9YcFr7z+A8SrX3rLyJwbh8roBkITDTwJEI4E9C63urrkdyKLuDnioUhqTtEAUr6YrAdj27IoZF59HtW3RAnPFs4wyE1E6z6l5bFMUdY+fdEQz9AEfUwjzlBt7n8JHOE0Ss8h3HDu/UrgY3PEojHfYJwqOjXNvTBB9Zm2AKOEfDsZUSZUYJKZAXlCSWcaPQdgLJ1t7JcK5Sw7Xs6jhWdwfQAw1kwWJZ4T1aXTPI4+Uo5Lh9CPlAEHN+NYEdBUaLRmYDtbYBcwOvAC0ADaB72IhlaYjPE0HCRLT5kDgttHWPzxLjM0QEd9XahQIGieLbBNUVNcIRBOeSL6x2R0JUxXw6Ho+eOrOZPL3u+/dOxp3A0M7W/ubT+zuT59Px+HGAOMzmS5kfzhXMDc1mAGo0HStbz48zOT7K1IVgQZjGvkxnEwnjwM6PqG1Luqqrk0JM1DsmmOkeNDrN0x6zP2n30c5TD5tiFYzLZshyZVvpAdif78GCjzKFrEvwcsEWGZySRV0Qz7K/A5RTkrz1MJQVYGYyT4xESSJP/W9HTjKPLE+X5q3fcTwdZU7mgnBhAkcOdVN41o6jjRguQIjSSegFrCXKbx8tqjuim3jqAf34hb1PA4u/u7M7+zBkQFSVuSznC6kIWGOVZTpOoI0DWS4yWR7nYF0Mw/jkYzD2eJSIH0FPA4RVWepUUToeHPYJiAAsSRYnYihBtHtISUI2hTj2PFsIUnv31OpgTZ3YhIKOBWMaWTBXLRsrncoCAo96ns9zxQoThQ0T2nBxGkicYJ+TxQPUydpCx3aUJVwVQ7fD0wLUVcCLzgXRuhPyCgwceXZFOaUNV3pppWuvF4tF1dddrxOx4mi8HYX+GaepXz/KylMP6lMN6Kc+cenHrt24/XsHB5OPJuM0aHATj6Gb58tMvMhVmcGqiEugVnkpRwAz9auPIZ7PRZEtEClRcrzOBksBNqw4c65hoWYAyEDtN+rkvrOsqEM57b7ertymkxGw84dzKmoWZr3KhdmITRNR7Qoe1GYNUKRsaduCSBjsP51EMkkSSQHq6cYUf08AyEKculanhV1CNnYC6ueIlmJnWVelBG1A0aTUKU6cKMUZg0hMWnZuEOqoYQtQTost7QhDOYZ907F61FuL+fF3rx9mX1v3Pf2/xqkGNKj253Y3k+e2dmcRQZKXnVyHnDheldqdY1vb6IQhTgct7aQg3Pw4tlM0KUfoI/cnM/bnVSWr1q4M8cBgCbRuSm2K/QxXoKCoZA+Rcz56Wm5kcABuBFkRtdS+kCO4pAQaAc3XKJQ97EwThefjuImyK5Q8ju/I5iiWzXQkYy+W2A0kwT4JRo26mIvD0UCMApSjTYyhiG11z+01QVr1p3F8HNwkkTZeTEOgWw1fs8PpR8goVotIUlwf6nqqehaKnMsSJ7Ezmsz8ulrteb3cv7u5cfvm8eL76761bzdO21yOt1bY9PuomQDM0ebu1NBGw13DDSptF9C4apmRfRld7yqI+GfXUlg6qqcpTGvqSZ2qaa009YMdT5kwUJz3CiR2Dtk0sXMwDJi4UUkxTsDgjWU/1nU+EiFMPGVEMiALPv5zAXqu+C4rR/LjUkY4/s7mWLbTGR5jsHmsMiADiq8Xx+o7hylkBS3C3lp8OnGKcofOBW8e54xQk+Mcag4pgCq/2MYR63x4rtXLTEZKmporYlAbeEicDudf5LmU+Vxms81wFCcf2ZoEW8iiVx55RL71yitSrftmv504bYBmaCU23t968uDczifBXH6ngDSo3HN8oFZ1cZomwm8z4vdnUDdysanTsXlitAATBaujdprKCQ7YlADmZNonksJl65u+dBLq0L7E8SEyxHeol42MQ1+bJ9S6tAbpcngnrgZdB2pmY6wsSaDjKX8Wtxdg5l72t2ayO92Us7MNObcxkgQJuIRGf6MEg85vKOgE5MrVMECe7fZFoV36pcnSSgQgm5Nzp6vDm0kpxc6n5LWueXRafsOeUZ0OZa9gd1R32w5lmRVaDLs6u8/bC5PgmU3vwb97Rb799+u+0W8nThOgte7Bo728P9rePr/5xGQ2u5gvb7tRnOgNzuaFug2gbp2OWRWt/W4MLdI6aGLPTrR3XbvK5OTLYljkcdaaNjh8T90EMiNvMoswgqkp7DciUWYQoDMUb2yUuCzIdB6zXVgbkilPbD3iJoS0SScpijsjRzcX4mH7s3tTOdjckYPZDD8nOFaoXvec6w8P50LY5jU0sYNEbCucF6UBQB9ygpKrMoQg5JBA5ufcafdk5XkQ2JZ+rt+3YKWFq73Apnf6VutDlfJINCZ209HVqdUuxPVIwz54BNJoD1udSkCfOh/6uY9f2hlvT34qHadP9dKmrqGPnKgezPJGnQNXpWv776uzyZxx7IK1fVtg0WLTecqtMjWHce4Tg40ndBroPHAFCecoUzdzeIaUIS4MWJc+8AZAmoAxPerlBPqXcyg4/HuiD8O2OJJnurkhk/EUBR7+hqS4cHYmF3bOyL1bm3LvzlS2J7E6GDzTw9VKsuWRTMIUujoGBsGgyxwgDSSNU/Wvw39j78paJUuz6j5TnDhxTsz33rw5VVfZotKt6ItIKyj6JjT6YoP/pul/4R/wRfC9QcFHG6EQfLOwKKsqa8jxDhFx5sG11nfiZtaLkIVyCeioirqVkTfm9e1v7bX3Xl88NRreTHH1O1PvCZUST113nmgJW1cpF/LKxU3uHhDAgaNLJmoFKhUHuk/XVvgsKsmNXdddNE394x+dn2f3/V1/n8spAVr1jqrf/e4sif6276rfqfPbcDJNtOVzooNgVrmZfi2syLHo4Xm6ariUejCTPMpmXa83Hwj9pghKPTiJXNGDYEySqZKxBgkl+y2YLM7Ap1NQmukUwCK1QDQnyPicBAZn/iilTQAsgnmG3WOoclCDxi4vNvbRxUP7aLu1p9ulbUFDplIkersBmF4DzNxFEoCUYMsPOQOrpdPUrOKbAi9mkQa0xlrQjc6XDEiQcmHxvWsggc8f+6IkMYA/8PcQymlBpn5utrRS41aKyw2lET3jbQgEq66p/ny16R/f9xf+fS6nRDl0KQ+7pR9GF21VTNjo46avSyvyStstlQh+YeSURzoh8Vg9zsHogeGoBsvK3qgdU1JjaVyjV3ieCcBMoFLXpvsR1RHKfbPFzBbpUgAFH0BEnMqrIy/21nBKnPedTdV0z2agHq/Nw+9tsrU92oIvb5b2cJVhJ5gosqrEjutV4aqb8yjFggpx2401oBtLJI7LOANtCNQwVXWlLaKJDX5Emmw5aElXlFqQ1KXbogLlPkieJO3qsRD53id4zDasVOaPokjgbfcjHWsqJZ1cCEPfcUmcpYs4ue/v+vtcTgrQP/uL33989fr5HzVlsxpYZiYX1uR0IxWCygDnVGmSSH7M/+cOy8SPvRjqfSAy2fzmj25GvD/pAadBQkbzVg333LYH+mVw/An/sHeCQJgmc0S/KYCzRxJZgwbMtDjastNjs7GJTkjqeqv2xu7odba0x8uVovIZFsR8nHLRWBYlRZbFAd40miJhjMXxD1cHS+cTJI9ndg4KkoA25ENtN+DLCzwGn+vb0mx3cwVQthZN6U3ti6YMrFAyIcT7HOrelcV71iADj1VEhnWqHFznHPni6JaKO1RFRNOiVeBR7zu9y0kBep/vPix6+1MAd8v+yZ5qLnsuKtcfzHm6wR/bKcET0zBmUwa23QCR1CVMbTloOoUlX+b8FZO/CbdnjkIhuRJ4QSeQ/e0QXa8aPBbAveBkyQSRMqBGXOCLP9iSlUYAN+8q6cGTNLMsC51vR18B7J4tE0RkRHSC+dEy08IQj2VPyEB5GGDGdj8hxwV9mvqB7SkRgqZsVnM7x2Oeg3L4oaem/k02twygZxGozluNaAUxO/mwsPoQ/+IzmA6aTwzDKXaAUCXEqu88kKbB9yOPyWvDaqkIZy9qxt2pRU7QsQmq69aeN/w6Qv9/X168vCFtnWWLNCDV8CNXONFIFSJRMvMFaI5SUX7zx5HscOJLs+W2WslvA1COXBcbZS4BHvf160aRLcZCCDvfmZKzk21Cyy4kVxMkn/jCm+LW5gDOBlF3DtDkNwctKNoNpOoJKcFnE0TmlW3xew+Xc3uAqDrjBPg7WYsnULtejAX1Yyy0HrvDV19+ZjWow/n6Ao8/ATVCdPY6Dd5GLXs8fETq3Pa3t8obFgD9YpJKaz90uTX4ENarc7yX1MrrW3F0JHpsNfWOJfKjFXAw0jCW41XwwQLFWw6aajhJV62TSQp/9tM/+SCczv+mar0P+EmTaqhPAdeK8lzvtnvSCfHJ2DXTS0cGeClfaYqDGy9uU78ym33iSPN6Qe8JWMk0syV2W/ZNdEMjfTgFn44Qtan31odrowXpCmDezhagDgCl39p8k4ljN8XOZkNs51FmF0jIngDMj8CZMw650uTxnX94YVk9A2gX+F3SnteIwl89+9pm8w0WxFYKSKdFapbQVQkJI8erPvv2SyxmWoJ9ZOfg50v2Ws/Ak61QV+HmbKsyuCI1EsQhQuS12i1Scg3SpMZc0syqJwswVHc4wGDDYn+o/+q3HmZn9/29v+/lZCJ0/uLFuqubP0CWvqGbELdJasldzz6MVtIULWlJPzwOp5qbNnH0YiIujTilJJGcMlBEdOMpLCUboirbSFNE1hke67p1ZuVUMzjt4XmRJkGsLy0DdVglmbrhXlY7qwYkW/HcfAS1VQggIzJfLlK7wHUFcGVUF/zRwMO+O8gX4/aevaCI8Nfgsl9886llm4U9ufwBFobh9TjdnHzYw+uswbm/vX1Nvc4enn+ghJOedxz+vc5v3Lzj+oEddthJ9gfQHukYeJsUHTtzMrmSP3Fo7khKnCnlsbWW6lDfTfF6fuz1AaW7V/f93b/P5SQA/fOf/1n48T+9etC1N2mchDrCoQbNoJrBAgP1ZJoZqmlonN5gtFWkjkLX4D40Tp7jWBV7PCIn77nfG9Q0lCJKzqOEm7BRdfaxQKaIwkEwUbWxR+JGaW+JKE4t5FW5s5fFTlXESQh+u7i0B4hyTxdz0IzU5oj8bFzi69AWr3fzdif3xq65mLwf7+MGCWiIhfLBZmMpAHehBHKi19ngdZd41pzGkWmKyH8BwFauW29CqsGh2RnoyZlVh96G8havc+JMamggKSsFynMEuAM5WwG4k7E9VZbAuKFnPtI5TXt6gmnhSQD66tnDbZw1f913zz9yjeuBih7RJJaiYeCXohuD8wRVoYR9waNGrC2VjTvsitNcX2Ka6hOH5NdLZSOyBYA7peTnIepjAUxnAAgALrOYgZp2Z3MsHDbZ5wBBjoSRoX8Gjp2RL8/mdgl0MjqvZlOB2ftfmOjRmYk/mRxyoT3dPrKgKBXdz7JEvdOd+qZ7RecOr2+7urT8+lqvJcD7riNqcODZJU8XwE6DlbOYJVJ29o0zuqGSwTJngPfPrkGvBmCR9kUxaVKhxcadSGNlag0g5SLwb+7763+vy0kAen91Oy3z6jeR7C05KELtllPblOnKNteXwEICd3RGbZaqg9E8PKLSoSHVXhzRD1nKnjhX0cEXFWGRhdw0A9fm5MmbYo9I2FiaLkAraG3rvnDqyhktDSjnqR00kiKSIJTNk7nNwUPXQMl8GguI3wHzuzzDe/d/XbRMAKZzdqIgaU0A5g2N0EdTGTX+IzJTn575LtKuwevZp82FwPfNEraPXWSDqOyST0RtJLlUxvP9LUDbKakl82mqWppzSCqEHYxJLWkZLRg4GEBJM5oMWRw1J9eNeRKAvr76BpFnrwSG0ZdlbT9wVgTkgmr3jGQN47roNGsajJPSbuKaGNJUxzBmkqyUjYaMjFiaA4zYP9HboSlFM9R6ycN+EN3Ix9MoZb+QHI1YuIgBkAQAZo/FAo/3EIA/n2eqHgb+HWW2YxQ++kqPt+h18FfYHUjezvnCYaxWiucHbiqGGnvIpBCgW5uzXQhHuSTnZE3ZaJHP5zMpNvyccnr1dZUdymt8dgV2MiwW9bGAO9fuKDl25vHzaGs3V+nL2iwkLyONe9B3bXzf3/37Xk4C0Ic3b7y+af0k9gVeKhVhGDtPOQ62jgMZMm4h4AlsuhXRUqBqEXWoShVGA2jWM+SawTvRcBFgDbsWgHKqyFWTW9F0tlieiY4Uxa04ZubPbIMInuL3Ch9xrx7EXwnmOSLbJZK/x+u5nPkZ6djRNrxFtADknDLcYvLeCd8qaqhRaOJO1FK53u7AzJ94p5Z4bjqGi5T/kAYNKmEjl4jvnkhT6EyWSVFYKImwEP3ezSxycIB5Bo/PCLEYCXb2kcez0TiSAwm9pM246/uTUcGOl5MANC9sxWRzjVhyP44V8XbfNdyoKSlw0yDkvP7Rcd9j5cu1kAZD4Nr12GFGSDTg33kODsw5v1BAfnG7k3tSHCZW5TdWV3ts/TO7yGb2dL2SWvH8sLMhAd2YgIKAkjxMY/tguwZvjl2Fzjsavbx1+v8ulXbednd/yUYoC3WuioO8czA9gpmqjca3vNBNb3fO4tfnMRk+/m7iOdfTYdBP3YcP31Jlziyb0b5hsLwqELF7ddoFanf1VWXk76qCaM7wse3GhRjd97f+/peTAHRAwscoPFqiCBxqem/cECu3WW7ZVDMUCamtOn84dp+xhbRUO6j7W0bcjk1E9LQAqP1pIlzlSMZYjUuWa6vznZW7KykBWTqzy9VC10Nd2qSjrp1YigXzABTh6dnS1tlMracq5ozORUewfkfZ0H889393N7sZQ19QNikRXuCOuWDF09RjMbp+aNZQwZZFUOnvfX+8zZnS9O4zs5QKCRZAGg+aYKdsV3YcdIikFHVjXzV7xCfTUJyIQwB87BAJd6BTBE7rchKAPuSFN8h/zhtH893tnM4eNEjq/JzdbfrmEbkilwuar4jM1UB+zR6IoaXrfi3KwcIFvk4rDo1VAcvBjJW+1Ycbdd3NAO4Mid8MiV/Zlvbp669sMtvYCl/4Cq/l0WZh6/lcfdbHkraGBwZnd6toeUSud/yPA/NbQjKo0qjj4hiVPQdQ+esx4RtcRZFuSjK1wRtjD4jmBrtOg73sR+F774ejgbopOSQt4332WKg7KT88qSvUgm/LVvlIKO8PfjbOQ4QFF/z1cnfV/PTJE/v02TM7mSMuTgLQVuLLRcQKEzcdreSKjUnUT9/JtLTNj22h3piVuQb23pko1rRRLK32eYgPqAZlvCwzBGZszYhMYa0jINpyJ4CmizNQiKnFPYdfC/v01ecC1YfLh7YAmB+s5raivxw1bT9U5JXxow13GaH3TiKoW+44yOjyPDjgcsfoxwjMKCtaAVQ3+vkOeFsHYFkAt84Qsh6vRwsyZ9buEtHoLqdwLqgsPjV6Jk/BgAUXTYrLiMYN8qqXvG5S7IA/2QbLv3tmN78G9P/lpeR/xh4G5y/heDP7oJUMBu/s7rK/CsQ7B7YfeWyfdBXCrnZnoRDQlL58gDaMqdcSNAUoxs5mi62bVIlct9ruNrcAfPnzq69VVTxbPNE0S5YgasecLWEENOeJQQ3XO2aow12B23u74uxYK9SY6+BOzJLD0mgn1o0RlwB1PztZKgjEtCVrHLDlVjqe0UJQj835Um1imecEArU/WhgEAjcicxtIt2fvNqkXE1L6/nHn45ALtwflGeDWddHa9fV9f/vvdzkJQPPiU0em7OCNWrPn+pxdhH4LGw2PIhrLQYg7e9Cq7yOQF1yoESqfJXCCLwrV6xBMWo0+sYq45zgTAL72naWtjwhdIpnqO3pinNnhtrb5OhF4qPMS5A2tt4YI9CVSES70/Ls+kyOkzewuco/4V+Q9np5FizDak9HSlx7VuuLPOf/M28dofEwIm/HP7pyW4zEYLGWz9ySWQ+pb80dHyVja9/NIFU8mf0MzuPzjjip1rsqqETX3ua9w/fy+v/z3uJwMoD3/eAjDkYqOKgflOSoZsrxyB8lLslM0H8ZpjEERXn0d0eCm8ipf8lVTHfAXADyi7W3p2+efvZYmu15MVDl7uA0FnLJJ7MsXz22bpvrQ/N4dxZbNWFRJBKJh6tQXfyy7m42qxR3ncH4eXIOdeHBvRcPRsVKny97iustLu8lzuz3gz2WBBeYsewsO+tbOZ28YO+VsLPGTJshkRl7WEy0AmrHzteFlOY0ZrysBf04mUyzKRhVWD2w8cNVMT4tCZ790WgDk3jPuZqvmpIqFJwHo2cwbijoYSkQUymTaqtmXYBx1SqQEdFVpPCWQUU9ecIhQMmvB73H2r2RfETOskH094IvkmWxyb0pLlivcN7WvPnumKJkXvb25yQGKUrIYbRC+fvnG1fRwH7WhAmAH/O66ThUx3eE/ruTOgs1RZ3YS3luVw8l5zh9PBjd4DIL5an+w1zd7e73b25vdwa4OB9sVhZ4jx8LhhLZO3erdiVnqAaFfn7z0QseV+0G/cyjdQhoFb5XnCVyqMCzJc5ysBKAHv+mx+HwWqazz5HLKz4iFoyialPHU+88hGE4K0ScB6GS1tva2sJpmLgS07Alqac2s1hmBsecBqg4snhSo2tpqD0ATbJz/C6wFKVbZN2oAiA5AiC2eLkFHFnYAYNlTvDmbSeJiZCRP/ezZlZPIABa2gFZ43l0R3I1qOZ8OTxMopC/ir32g27yj86M33GWEjjePXBng43PkVeUiMxLV6z2u+HmLP/N0gaJ2R090Mrtxx2Kwqkn+nmKhsr011qFFbgtjBbMdaQh9sVmIkaup57R6VhtXWa+Fsq+qzsfqDpTQ+hom9o50zobbIBh++R8fPz+ZhJCXkwB0Ol/ukND9K0L07yHaXRIojHABYRpE6lUuOdNXNePkdahydYPIx2IEB2MZmTgIsKf2SojT2QiArkA9vL6xB1lmP9xs3fFteOwDAMWoySjJhMsVF31VB496cytT8tZx4LYx53qKhUS/O05Ym/9Wcx4XGxl0J/XCJaYN73dUKXrnRacK5MTN/fEn7833xBlINvkzIWWP9lSR2UVngpmg585B3p2XlQYZOqkjvXylj60DvF86RaTuYq8PHX2Ry5nnjerHwAGDm25ovzE7LUP0kwD0j37yq+t/+Yen/4wA8pd921+ygcbYX2EuQWQRgPpqXeSjXOWOSmM9holghi8vi9klFypJqnh7jC0bNGMWzuxsMbd1lsjLrhsd/XNEsM0qAzBKgYRSlnztmPRp+47EV+kDzYkYZ7PbjiAiNQhkF3YsddtxSoSVvN7Rlna8sozNbkF3PorpMatmKmWDFIWTNUzeeMCQnpP9Hvg5HU3VdUTc4I2AbgXoPXj5oajkuTEMxzPJ3Y5ypCsRVl1NlUUJtHttLKtrRAsPUdZ9e9/f/fteTgLQv/iF9X/4g3KH7REBkJZYM+t9d9RD3zc6EyWMnMvnsXk9ihIbkBH5lWvqIQiMI0zYrvd1qdLvAnRjO5nbCgkUfS1oG8BkjE75NF2kHEdQ9SpadKrjsdjCqQ5NvQSDfJzpecHSNH+PEbfpALRBqeN3O+48x6n70X5MUXq08KL/HTtgW/wkNSKWNJHN9zP2cEQhbi/A3WWQHlhK3w8mfzLWmcjfmpo4P4tovBZYkDoSw/PeeQ2jXu47zVxOS+aatWj6aFVPhaer6/rkDhU6CUDzggAsiYu8UxMc1JVH/7ghcPq0jmnj+drsc+BJrozksrx1B8K7MwFBKUhDEnbXxa4BSdQCEU2Hz5PO+OLRLKKorWHgyNZEH9ZA43Ae2tM4hySkUaIXdci+5BDbuDvW2EVqtQ25gouN6kY/6sydoxmS3kRbKoCvsP2B11JHUbDNdYLdh5XCunNnKVacLRyPiaMHdVm2tp+WAjYP5QxC573ByN2P1Uo+3zE/PMqcx4OFnEHHmMDKRNIXXWMT2CleTgbQ62Xc3hT9gZDymJYzAWL0HDrRAWe46AnUnJDuu0q6dTgeqSYTFvrfIWkPY+e50VWD3YB784tlLBoAoAbXHRbFK9CXssxdMxB48Tyb2+VmY+cJOC3PKznsNTldBqMFwJh86ScWRhS0AnM3Nk/xQo4s3t24Ygm1ZSZ8Oh2rqHWqbcMjkbHgVtuFdXFqLwDuF1dv7HA4KPIyoczSuZ3Plpbi/U3YTJTX4vEZ7i8THLy3QAua5WzQmHZsxmIy2r9NUKkhhljUnsrdtegGTXXowbc6W9lq1du/Pzutg7JOAdBSy1Znj744PP/mH4PI+yEiz28wcelbNzpknvt/csggGnsqsGULYP5EW6+64PRwY9mXtrj48rqykrVWz9Gr5dZmq629/OK/7cX1G3lyrJdLy/O9PO781dqyh5c23V/Z+tW3AGEuOsB+arqKVSwds4gDMId+LQks8twECBeNiiI6qdZAa7AYajYL9c6PWkaRoc3S1GLOK148tiJZ2OsvPrfy5de229/a2cVDe/H8uRV4stXjp5ZeXFr95oW1eD0FG612ByWdjNDRuJAHeWS7Ik7Xj30wTp5hnwtefgim1AbO/7rT5znLljbfXKgn3H716X1//+91OQVAi+D9/S//7faPf3v7MXb2T4Y2fTSJp1M67lMp0Pg95wtpNcskh46bPT3snBUWIxWtb6UXy5oAPDdHgAJXjEZ+GsyXtv7gQxvixD75r0+wnR/s5jbXmYBZNCiKUc8+e/LE/oe9L4+17SrvW2vtvc9wz71v9HvGU8xgPBWw8UuIQ5y0JEAVppYQI7XqpKpJ/6BFqgCJ0EqBOCJS1TR/VGoamiaiQlWIaRhKbMuOaJwEx9AyGbDBeR4Az2+67757z7D3Xmt1/b5h7X1fQoltni/nmgXbd3jnnrPP2b/9rW/4fb9v1B42i3RaK6eOmVnydz0aCUBowr0FvWbH4ok18uSOXR/kj6l0jRqPdQRm0FVrzD+MTF9dWSmI4lqcd4FZveylpikH5sljT9JrIz/+6FMnzenNKVLGlFE5eOFFZrEyMhvfSbvB5jo9DqKLyR+iYJjL3jzMyKU/guvhqZWMrUTa6SLpPs6bgjIyJErqU+A5NOMUp1i3dA0rSwHovPb4eP/GxtYtK6urV4/W9v4IfIq2Rvu9DLqsCi64YIzZAsN2hmYyQa52QGVfQ8UPSxkB+BhVAiBJckGmdm0tWeM9Jo4mZu/efSzxlfxZUhUaj3mC1sqEUmeTlYEJK2vGnzzJfOSCAyxixEEFac7CN9CXhrBjW3AxCH4zZL/aZB0hewGL7WOUuSuGxG182lEOHDrfDNcm6YZwNExziCxOsvKnNk7yxNp0bvvTbrEv7R7J4TCDjb0JyDPElqJ6yqCl88qFHvY0eM4Lz1spqsK2KdhALELi8OmcUyRIaby6AYPG7/Qlf9prWQCN82xvO3py48jFe78z25zO4QfTzEB0M5P6T0ugMsKHthFBHMrSq9zYSgT2QMHhJE5o3x+PnNkLKVwUHpJVq9K2Pkz+6eWXX2VOPvUk6sFUHt+TwLV3zwEzSoHh7NS6WUw3zPz4seTvzpOrksAz4L5AiKkjcENFkwj38J/TjYQptjrgc47UGorOlo8g5H2UnBHkYZTy1vGnUpCZ3JR000ySpdy794DZ2OAxx8i5X/qSy83lL73SjNFHmNwhDKNosAtYT5xv7XhBJqaw3MVjWAEtnQOz7+B7VMPSzZstR2V01oGn7NEsgbk+czzdfEuXtVsaQOc1Xikp0xAwto0AzQ2fykOmK5MsH3K6562tULMpihBDmQq1txlTfx5660ZQDy2Y+lmmoKhI27tJXw9VI/PyF19m1iChlfxkVOXOG6+Y6vSpFICtm7KepmPLeCRRFCzB5y6VILxmdNgAEpSllsIHiFIYFQF5fE8CL4YZgkg5lrDU6QZNfvECja3VmNRHDydgly+4iCqKK8k1eukLX2T2L7aMO/1Uss7rNGzTFNwATC1piB2Iy8LZIBf4vNoQhaWYfi4o3nDz0zMLjgiVgUCxTZ/FvEFRaquo6/nSpTqWBdDZVKztHd5rbfkX6QpcmHzEVRpbhqZBcC6guC/pKOSLMfAHlTYo8oPnXBJ5f2JWSxZipHFogFsgudkE9PRcKRhEUebSUJsDh88jS4ucL/Qxxuh4Ccwm9hBCx9zC9DNSeySGDlUmZA5kritROFBIofK7kaJKpPmEeA7kmOGakDW1jlwf6D4PqSiEG8Gbg+m1Dx/YY6ZrY7LwSFnuTe7F+MSTyU/H60EgpqJKIHGbSysyDtwjGQtu9YEyVCnyaCTQkz5S8Knr2ZwCWhMWVKCKcJ2S2xFm84tGRbzhxqvNt25eovEUywLovKYrjz2431xxd7pYr0/Xk0W5HYunBBkAzzxgvoAkNgMusHR4D61YRunZQyGGxuygyxt8YUyMSs8zmlTmvElF/AZ6zsDBJqiiLWYOhoKpoIHL8EiHReISOz4f1+NAR5Ya6NrApXQXOJUWbdSsAwWIxjJjD/45RNjXILpuJxTQ4e+oI81FajuDYnThuQBDo50LvnlVRCcqOcl5w5tJpMokYo1Fu2FxEyYkU0ox0Mg3D0nSWDRt2PL+4hMzwsgPAX2u1ivGlxWPL8pNVwwsupMNBWMICj0BgxSACq7SsaC56cS9RfzciS5zS6Vs/j2CskEhXOaREH0AeppHGKiiRyVrmv8dpVuk4ayKkcbU6EQt0GauK+NYgNwHddTBmZx2xE0I96OOKcgz3GoGS+pcSzcj3AgrethwK9Qnxs2EtIdtS7L6FADKe7KW29EwNAj5ikLef4yccZnXbXTJLyLQg2kHeYT0Nytro/XvPDm9/ZFT01seP51c/iVaS9em/p9uO7qwi/rJUTkeM7/Yki7FbNpwrrfhnK4GQ3ztuRxuaBilZy6xjVklqKLDEfgLtHqVJh/4mYCB57A65sXmOSXOxqz5kdsMFLhR+wuNDCkS4l3smN36eGpOQDd2EXOeWIsfRAZ1gfSuoT3TPzecM7lTmcxvc1dM7p4NXjRLuHl2kFyvtk6hZFtG9BeirA8ZsHI8MPsPHTJra4emp+bmzsdPN5gBvlS5u6Wz0HTStvzOwIR58qH3RsxLqWdEuDe2MiTOb3jsAvLTlpv0WONCGjPYSjKdEoFlSYKN7Fq4XpmagjzatiHTWxCW0Y3tZLyxb9PRuJwK4wcYaTYwnRU222UMrAId39tOkaagrhIWZ8d5kZAO/GDHU7c6PganCQvt1pFzbKkwIgQoYtBZ8p+5FyDm0XPIyVcQVm+K5HXVdivFhGvjwozT60KRabZpjs3b+PX0V+DkLlWqYykBnazHqWpresx6fz70Nipo1EWUeVOwh+6TQccPZj83kLhMZ0XZzSX30moQZVkgRlVCA4M+8+TJZ2VyUpleq/FovcJWr1abF4FJvre5I1ZbnKKAmTu8Y4a5E1Yd7xgAXCk+uGOzyh06BNAiN+PSkHoaO04Cw0b51to1TqA2RqQP+D0hRoDmHmlOz+nujL6soDRGqcsBPitbbRzet/rUI8fXt8wP6aPnfl113t5m04fjyPsGWOVBNFQchCbb0FLZF0WFKOIrGgCSSpjtrHBh2GVA0FhIG5Ns8PQ6VphpMM4k6hhEAQn+ZuyBTP5K03VkEJ08k4Avh4NRaZrSWyjnYoSLjOfCzQV9anq85VHMxIyz0s0tz0Ud2nb7FuBtzAhkoRpuTtDv6e+sox0Gmo0Rg4hobN3CjCqo6I7M2ko1u/rwga0vHn1k6SorSwnoKy69xD+xfmp6YnNmVgfWnPJTM69KBDk0TJ7EzcVqEufDSpEjMLPMylxuVh6FoQtkuXAwC008BSdD4dHyZNUftlSujvq4yOIwBFA2i8Jm67quKX0WmTpqVeSObjYGtHNWusAZhDRqjpSgxPLTbG/HPnb22aO4RlFcnJi1a1rT86wCuxx8Y2uqXoJjvu3tIEbS7Du0Zw/tAAfXJvX+1dXG3HXPD+mjz8WaDAfxwGRSo4xcrYyMP4OtdGhqvynWjN+WWqdCW7A1pYcGANGQY2Dj7yPNFmRLydeRamrInDgGC4nUBGhHd2k/n9WMGNDk1hQ2C0GWNMhIU3yR0mfEsVC/PjLfmdKFsVM/oi4Vx8/DT+oNCzg4DjIlzaHgdgJwL2k6em5xdaK8ttf7zbC1L8vSDstRikGM2ZPOdf/e/WbaRHy+viqrpXI1dC0loI05kS7aMAxSyD9J0fl5YWLqaU2z+qzoUOQkg+jFGelkcaLtoRoa5GqQdY7kJ2uqjZpb6bU470VWzvCgIRRbCHhRlIxEFEZ9dPLLHU/pwnZeOeaRYH5P2XrqZyS3RyuLPtCNpvRSfX6y81aFEOiRxmbfRT8LS76xoo8185I74fj8+JxQ9JGbUG4Wen3qXEmGYDE3Q5XSRSf6YhHDYr501hlr6dJ2WF98Yr05NV18BbwMdGqQFFcKBiNmAoqfSVM6NRhSq2S4EZQHTxZUGnYC6oJiLLZ0Re8ruSWxS8dRlU3VjKinMLDgC7TjaDdwBGQaRATdD+3KppkufCAoG0Df2nL0hiojpmjVnkEIQLeitUH3k7gItKNE3U26Q8NSp//L708aXmUessYTqsXoVBMnvf5kOCYtDswTP920X3n4gfVmp6/zM1lLCeifMJfUe9ZW7sEFA7ttbTyiwTtWIn3KT2slUFs1ZJ6K9hyStWaI50DL9WRhXOwBWZnUZJHZGqMoM2vArGuo+ZYGwKeHoS9xXLK+Mw4CMICc/Pqh6D6PK568hZI8bhiUxhcpKJstGnrORq20lwpjb8xQB96cxZbzdvJenBxF18UtjxblkmzcMRksQuMv3YxrySig8aBKN9q+tclXf+KSS5amOthfS+pymATiIXV5gKoJIvqeCVhpQzO1Iedl41kQ0CFBmp3ogMyg0EutcZtRJVHDlp6HFDGY5+k/U3SZTOdkZcdjpqlCL5qO0YCs3WjA45jpw7bs9xL3gwDGfjOsMbjdc8QEKRBcjCoRaOTXK9SUxp6wmDPZl6bEYOwyJuwjh3zzst/RgTrqOLkEXnTJFKTSOk7nYYn7sjoaRLOxdAkO/ox3+gSe6RonEJdjR7rPQN++1RUzOTNmLgKEjS0L3lFtYxuQFdw29/ppUk11NviHTuO5E1RkMIIth44TSB3g9XBz7U2vj2ZVTK3CAVCPMUgeHTTUsQLByYKKJJiT0jqeSWhLFnmEyOSZBK6t6cJspUB3z5j9877fW4g+Nt+IUlCRYDBkeV7Ot4vmsLznmNOCmsHx5H6kkLaxZv/BveSi4Jwxtasi6sBSyXHktbSAppIvJGFXxkS3GQ+GxoahCYuN9I81EW76U6ei8qQ146FFE3pIT7/Zqk3mIkgUAXHdrlFExvTZzQQ8SGftSe7O/r2r1MuH7nIAGP2LmCYLpU+MfaCxFzhL9EAmIDcJPGDUebwJcLEhr0DdIZtmmvzxTfQIpudrxYkKRncQqSBqYUUqkTl6058V0dilbMjvXd6VSPXixmxSIJgAvbqHnvfA2gprSselTHDQWlpAt4umTcCpV6pyAJGXSDNQKnPyZGu8S9alWqHHxbzNmnxB2SUxcsE5Laawx9ouf2szIMhFSH+zgCrRoqWBQQf3rhGYK5nOZcXdwQ2FcdkOgjEEVooouVuGWFEtSYKi5Wpoh1TmRhIxbpyhdiu8Bl4ryGt36o+9I+vmicUOKmfD5X/eneK2907uE/lTnlKBw5EjgUcMKKIRciHU8xTlLuFEN1pLGRS+/eabfbrU305b8QOkxWHYxx0NuIewpKFXPrcdZdX8zHuwPTBb05WVXe/f+bV0iyabRRmDwrQtp9TWVidmsjahQfUq71sTLTMdkPoiN8WSi0FuRvobyOYuWtbGgyITjSemtqpheq5VszqZ0GVpWnYXGNTbb8ZuAoDECpkmykf3vuQDy1XInruBLHVpSbyRuNiijxdieCD5P9/GZ7zT1/mZrKW10Mfm8609Q3cmBTAJTIG2T8jHTqBNAd4zZnkXEtT1S8/KZBMQRLHWDNGefnPcbtlp00cJPFrpX6yo7xDSXMhW1M2ChBeNCEZSdsFRedkMhMdckxzRPPnKs3TM6Wec44h6BksTR9YMkgtT1o1MpGKrny1sFP6HWuVcdrc5XhD/pMcV6dGirI614GKQTec9CiWNjh7LOZzamp2Zb9WbO319n+laWkDvWcQTxdh9Jl20V1mymqz5PILfWnJQVihLTZcAgcDsuq8daI1RZITOk+ZKHtqj0BwAXQ/HbDsaVIQ2rbo2x06umxPrmzQuYiUFdYcPNDRDcJ4sNc4JgJ7NIco4NcfXN8yxU6cp3Yeb8OC+tXTsY8orvJX0WsMEdGjcVSS8HvNNFxW59iyXSItJNHdRg8GOKKXFJhVd16FCpRlQNRM0UvzNsCw/c7LdOrnT1/eZrqUF9MPT9fbiyeg0ctGcTiNBW1YNqljBvtDhl50Ry+4DfbUy9lJ38czD52+CWHeUslEswd/BqoJmST0AviHVozpZ5q2NLXPm9BkK+kBh9X6dNOb2JBBD/gDWdStZ5dMbm+nYMrMUVNbp38ARGab3sDZeofReTG7ISvp5RDeMYWI/+QmeWXRGN5jYBbPWbHNLIjULhA7oZ30GWMQsbApqu4JudJVec1E3cbpo1ufN5lIWVbCWFtCPzzbD/ulilqxlkyxbVQqvWNuvNBuQra8mBWw/cGLABtVTtELtlP9RhsGartqGnsH0+5UEsgn8TWg2J5DCWh9KweGYZq0kdye5DSRVZiJpy6noIlKMyG5csG+vCaveLGZz4mesrY3oedv0c5F2GhRnVtDcSu8nsuxAZN8XJ15EI80GRt+dBI/q65v8/vqL+xx5VykdRiNhGu2IB9ijLcubraZtjj381HJxoPtraQH9oU9/Yf7bv/TC+5JpPhZcvJAuXg/Atn851dXoHVHb9o3mcbWbxGS+cpCt3qgMruepUWjVAodkXkOGa2qK5EevQeZ2OOQUHFSLKuYt0yAg5TaHERdAUExBuTy5JqRqCj2MZK3RnArm2wpZTBZ9QarP6gwZE7vuF+l6oVqNuEhnVwJzfNCLIeiTEMsPLWsE0jg94pMYe3x1NL7/w3d+Yr7T1/eZrqUFtEG/deOn0EQpSu04cb3pQWctCQbjNkstFk1yt3o7RGkK0CCMiEqeh3fyGDmbfPSS3AASi0lARH+UoyKJIe4y5MdQLRyR68NdTOBsQMAcQub4nnYQkPAbluCFRWYxc5ZcoLy1b3jnMEoVFTdItx3xlRjMYqV778/0shtGviP6LNyokgcMQTC9JSFMH+t6KSveeS0zoM1mclahrTGAzzng3sB8IXvBfd/t6PuS6mrkbhIj4t+hK6iQtc+6ya0w46J0llTJ5wWpiP8NIEN5G1yNAZf2jIO8rc5QhOsAYlP6HsEiUndeVEwBeSrIDDq6KYmVNy2TQMWloiRGcNLLGMRB5nigb6E1G8J56F4TQN5xOJND7gbEZWo0+5oHm9ItbUCItdSARuSCLbyMRuia29Pq/eyF+sX0fc810TwAd20H6Sbx3LbVq5ihKhgI0F5EF1nSq7EiGkMpYHYBKINCKTtIfhkJWA3npSWzgv5GdG81UvjQZgNMIy6iTJBtmZ9d0HPKkKSoHeyR2XLB5Zu4y4QY0vvQLpVtIOdnyZmOquAGBHqnRfHQKA6WbJDb9rXUgCZTl97BCLnbivvwtodK/N12bnSXz1X9ZAUzjYnrgZn7A0XKAGIxLU9rpVFsOCDISMDmm8QJOAqRGyDprcCSutpsoI+j4UKlyAdE7lQHF9mCYec4RViJ6+CplVAIVcSdi5lQZZ03XMZ35Evr+OROOaHvfmmZqSNh0YiK4YCKl1vzmVksl2rBX1lLDWhrw2byUZ8YVMULIU9QijAhVpfH2J7V0KJCiKLTa/gH5m34zkJ7BXUkAhIDmnnK4EBD3xl5Zpp/ZblLBSAtS5fPg3zaINu+tlcZHmmBoLFqC3IrPBp80zNhrhd3qxoJWrkjhjjQGKTpOA3JnOceS9AxyZ95Gy6Xt3Oztzl7p+LlJOMBSz8eVTSMCVXOZV5LDejShuPOxfuatr6+rNiPLmUUcMeh61JY/cpfyCasZ521Q5zEZXzmJPuGAc7kflYYJffBCGUTUghSBFEyP1M+hXoqXE8rwK9oIkBF8gde2rhaOSd8JXcDMiLpcS01GrAb4krptok86L6gbE3QqVW9m7Z7j7H3CRjTCy0iyzGgyhlIs4TJU2Y63enL+uwwsdMn8GzW7JHZ8fIlwy+lQOzt+1dWJpiIRdyO2O258ayD01uBIsIgmQ0FdBALTVbT85TXltwMTuNp9zTRSA37yiQ1VvKgSsoYgGVXiT8vPBPmP7FGBhnTsqBsBmQXVPAGcwjblkVw8Px1YAvtyGBzd2CBjpgqJj8bjQGe3Rd6zsBWneQQfE7jaRZnWypPv6b3ATCj0QAmYNbUW/N68dV7H2+WOihcSnKSrg/ceed8sVjcmy7ZQ6TlJkIxnWXqUlbaUR16wNSDrKRUG7U/ECSimnzlSB0kTWTqKB3w1QvOqgDA4D1PxgOiXo6pK6UgoXP0OJbUMgWWnSdAwoIMHetG47EY/DMZV2Yl/f1oVNK4ZpQIkbtupYexJapn5HNp4cP3OmcCT6T1Wa5B3AqVLjCx50933eAkaInzhHuEHaL1D/k2fP3D6TPd6ev6bNZSW2isug5fShfv9umivixdpxGpa+aUmxL0Iwde0bE+R4z5TuaLLwGgBIQEYPjK6PEL0hGimQYXs04c3BudW0gTXR1xIcyIRjNbmRHoyaVAdoIGdEqvH0rpxYBTemh7QpZmnn6HYfXUT6g5CavWlnPPUUQZmXQV0nkEnsBlrOhj99wN7SqPPWmGDHLuhm8o5ejn3re316dnX97p6/ls11Lplv116857H5j97MtetLVow8Wbi3rf6a3Z0baJe0fJSYUF4oILF12cjjLTIosRdSHJaqjf3Ip1Rt9rdKytAZ4FDwdiX3lIswJ5XiB1p1QDbsFKX0dlZTAuk7MWLY1gLkNkwBcl8Y/RFQI+hTLqKPOBcywL9pXl99gJrKTsQuxkjFQEx2yrBnKimdWSZCcKQbrIdeg9zzLcmi9Op5vqm+kmK+aN/+zmfPGh93709m/u9PV8tmvpLTTW6Q/f+hfNjT/zgXRZr93YnD2ULN8vpwv4muxWaCVNLLUPnN+gClzg7dmIyhL1+wXmMZN+XMGgw83hRBmfte2460Q7uAeQ5E1gqqA1bVnfGeMh4O+2lid08U1RUuINcV8pnAyL56ahoCEBvzUVZVB8zsjEELI/TzMTDfvwTgRrnGjYaYYn64T0MjohdjuVAPyW6WzxeyecfVG6f748+++3/9+dvo7fj7UrAP0BoPPmz3w+fYvDvPMtN7wagM6uh8pvOZuHvxuRLVBhQ5NbrSQN51gKYKCZi1JTZSxUw0AuSdzcJlPuU1CHqVeUGrc8BAiWvETv43DIxUjJmDQYxSZzB3FvQbkfaTlIMqTbJwE7+dsotceQgVjCn69bHikRfS9bw9xnKyk7dT98jD0JsLPiBVZ4uuXff/xP79jpa/f9XrsC0GevWPtPJcC8P6i2nWzVelFVjDFzI8TB7Erkkk926A0saQQx6BhWZA1IG86WVATBrMJ2a278vKEJAlZcXPinPD6ZewsBugVaq+qaOla8KofCLa/SzZKCw2IyMsWoIuvPndnyfiz3AZKsGE2XNZKrkSIJVRalFC4pvBDMtsA3xxHierSb8c92+jqdi7UrAe1ng79sVn1WIYpSIAH5Pcg2jcW0htAVViITfJy4Ggj2oNI5oJHLLW35jJ/kRtRzU28t0jEn1aZmwcPnuTlFaJ6OlT7hM+N31HYlroTKKOC10LUyGKSdYGVgKnRdT9CPiLYtHmZfiWCNcyWd56JhWa8gd6GVrAa7UdJHmV2M2LlaXgtD7fzbGw8f2+nrdC7WrgT0142ZH/Hhc+kC/rgGRKTyH1inImZefDRGxzzIb+ir0wwGp96a+cJsbm6ZKUj5NSqGuGnS9j9r0KxL2hazBGhs8fh7TLpq1bdNC4Egy4YxU48yLWjNKpidh2AQA+tH4wGJv5TjKh2QOLC0Q0xWhmayOqG2L8xcRAyQx1wYdT34/ZFsmeFRGf00pZd0ZEviNfZ/ffoLjy93BeW7rF0J6DvvvLO95i03fKVu/Y8PAS74pJLl8BLUsWghlvrUXAJW9SSS3U0Wr00uwnRjy6yf3DCn16fmzFZNUwJACsJjMeB+lCznwcmqWUsA3ZOs8cByFa8g0XKtSsrNIn4sze1Or3safYbJ+m80C3PmzCy5Oekh64EEIquBM3vWhqbdt0rnOF4dUwc5ajaeyHeqtaFlbrlBjYCcxp57oqY2kuHAfPF5U9+z09foXK1dCWisZA3/oG6bf9r4coisAYNLUnbOdqKHyOUacTV0vp9U4GigUAICAsL9eyZmbTgy82SVF8k6x8aQ4hA6P8YJxJNykI7kc0OjWghEqrukZXZnu2ZWvB7K5wcT6rZ8Y6ZNsvIYShQwlxsjIqwZr6TnG5dktQFiqmQa7qxB/poDPE3nSXE/ahncSgqSc+GtgLpums1k3W/d6etzrtauBfQ8mKOD1t+frNLLG8oaMA+CrG+0nRpA1jlgi6egV+sNwtFwJQVrELRJFq+Bnl0CtF94Uu9HlmOYAsSVBOhxUVGRhJpdjXbAdDRU1xsrwaI10QwwxTUBeeCHZpx8mRbZCsx5GRVmDNejYt0QeBPIoLSxy0Hb2HFUODXXFblxD1HzAZXwuYzfYNCRj38y3Zwv1wDvp7F2LaDrZut4W0zuWLTtVZUvSgCaK2lFB1wjVlMkOTpWXkeQhyVEQaQSGbEKU9CGCRw1+6wYTzFMzzmikXHooi5ENtFI5iQwV8TySGbVm+OW3sCXIFZUGi8NT8UFGwnuBg0ychzstZJibANL+0YTezdiV9bvhNi5jM+uRkuuxqJpt5L7ceuT463l1Pn6G6ylrxR+t3XPg0/6I5ddcibh9u8URXGQGmdVaUizXbmTI+a5fk6QaAXMQ9J3dj2XhRtmrXCfKYgbFJR6AxOf8soYAuoS+By40Bhuz6LpocDB/+6L9PsqfT8gPKfDMQEaVI5Kaaji18t2wvxqBmoumATmdXjlc+TiScyVQfKb6+TW1PU3F034zY/eds9jO319ztXatRY6rVC38Rtl6T+V/MZ3lkXySm03xJ3SZdriLzJfrZU8sxONT1dkHTmdI84cYlEgsqwQSsPehXwMrgXy0URB1aJNR0CmGwOleNwMyGLobEPtA4QVVxCLEBJb9xA6jWoCsM4pjLm0zcM/O11sArRviR9SN20y1O3t6VeP7vSFOZdrNwPaXHz73etPvvlVt8wb98bkC1/ZV8eCan/hVKDF0qERG2axkAyBk/5C0qbrNDDgH8N6IjjzXi1kCuUgfp7A0zQEINrq25Zz4EZyzhXpQjPdtJI+SC6va16a9ThcPleVJ3Air8sAbjj9xrK7YqVZqVSVRfkxAmbQU7/RNvHTF9/+uaVusfpea9e6HFh3JnhedcmFG8nO7kuewpFkZasMasLv9r6W3GkoeWmadVg4Uc9X1U+Tu0WIrmpMHi2RiU6k7u+J5gkQtjIgyMnMFFeyOhI407gxdEBQSflvVup3OX5kV4MorfCDW7a4LLre0Uh9T/2fXrMH5lndTJN1/o/HTz36yf/8yMZyt6R8j7WrAY11z0OPza998eE6geOVyfpd1NM53Eal1NVX2GVBFpeBqIBWN0RzzbCupbUZnDxnvBBqaEmE/1FVEf8ZEgUro4p40OMBl9UHOs1WJ9/Ka6ncQgYo+BwAtGQt2DJ3c160eOJZkqAH6MWX523zux/5k28+uNPX41yvXe1yyIrN3H/VFf5zdlH/GOFZtDsCtTPJWLXIbf2cx2XgFgkYFc3b9nkWfSFd2NzYrbnr0sQS23yRAj1kQEqzKNPXioEXdAAQSuElux166I1i5Byyy6AswcgNBrUQ+YnWStY5EKeDvpedQKuCrLHBs1/mdR2b2n+unbVf3+kL8Vys5wOg01qfx3B4I1mtZm6binv9wKCLRPrHNNbg2I/mGMyRf4yUFywiBtxbzcMVMpnFuqym78Sa8sg1S9mMSkauUak7BClxc88jWXLlPxeqIiqtUla0QUw3ZYssrZwL0UgJtF13TedycJAI68y85wb/hhzOsScf3b2puv5a6hasv+n68J3fqpNb8ECCTqUE91p9Ue8zx6HpHa0Ah0ENQLWyzYeutakn2oLVd2ecDMnkw7BVFw52b2S35Ku7jr/cCxg1+GMw8yHWObeJsSUmAGu+OYGYgkB8bbkDJ7lBX7vt6NHl1if4G67niYVGetg+AT+1lhFqVooPGHPsCx7EqfoZWORKoCkVJCOvU1wDjUemf5NG1GxbpSMV1lX9byvPS8QhY2QgPcvw8mCiQCQiLVl6uTk6MMuhroaX9jBpEVNLnOcmeiZA1Q0HhHgv4GWnm2GpG1+fznq+ABpSi98eVEP6HtoTNekFMKgw+D5Iyiz2eBc0No4GvqfHeJkTSEGfDKEPMYuIG+FKM8/JygzEriFV+wOt6xS5oja0ClMKgM4DPVG6Fv+ZARxzUUXTcdhpWt01lFHnOf8Mywwwo7vcT2cP7fTn/1yt5w+g23gCFhoLACIXomVuM4GBgBpE9EUyDZLhgI/dukhkIud54izZ58i6HCzjxb50noPoVOPIdC6FTN1ShRAtUwf1mQ23f7XCxuNu8w7UtVhqgHnesMvkCbzaO9j51gpmvOfWu+VWYHwa61wBmmgS8vWvk4U416snX85rKx0v6GnfxZr9Y/oewWBgEBdSbVMCPuWHA1vMQg4XVK5XWqiMzbPDSdXI8TRXKpEr+bp7ZeJ2aPcIZSdIHiFKL2MkSipGx7XB5LScWmn487PkH5N1htaeyv5KgwKsNRqDFcxIIzZbfmn1np/uOleApsrwDr6vv3LjuJNbdXFoP2UpaMEdWJjOv+XJQ9Ql0kpXCexpSc2rkRpaUUEkKxyMSOHSDHpTUce1zHeFkHjhpGzuesLk8rIxSgcN1D49+dCtZiekXayJDOgmKqhFl0PkeDFxFsFf6IvYkXwDF4P6YMYNuXnBl3/oQ++29Q2z9qNXOJndUDhk6RxK0iDtCBmOlm7dBBY8VKQL4K04nWFJckj8VETIh6QWWXSWHMBYCkMCLoVkLVT2RoVwRN3I6VTZ5BcbBmQbTbbQBOz0OHxfE5hbM13UZr5Y0Hnq89FrRuZJ0whmkshlMOPfb755R43Lc7qeF4C+9lWvuiY6+z7nhNafdvkSdDasBEykuIxWAQOr2SNwbGX4DrkQrpCvjgszMmVKhwrpNG5rdUqty2KJ2uxayPgLIo6CB4Jxb2SnWZEJ4FX3IgMbMxEbTyLpm7N5OhbU30ic68LKgHp+nWGls8U5VlCf/vm0dj2gr776aoxo/92m9dcBT44b/WizHlQlD2SVfj/2fTUDQd0d5sxUCEOkhiSD4IUbHUNXDNEJxNSMa0U/TxT6fWSTzlp6Njev5gDQiEU2bKEb0QZZJERDiHwrWeUz0wUBGrnmSnoe6ZycpR2lovFw0kxr2cPXUv3zae16QA9Go19tQ7iOJHEDixDBUkfiddoCIi9Eu2w4qOKBQ4zq0ESao2K3LAnEOHEp4HtQngPuSBAfxFsRShSpXie9fTH0WrCkrG5i5jH39elqH3MgCMleWOYpgXluNqYzkkAAN5t5HyWdp0p6QTKB1PgLrmCG2BVurr/++vHdd9/9vKgU7mpAX3PkyOvTFX8XwFyUFTqoiFBEip+WWkEiGqZCqXRLz+kZkuQqOfBLPjZGFa+fmXYD4wHmSjpFnIiMSw65EqA6VdUXwr1yqVWSnVqkiJOh8mOBqoEojlCZm2axzM3prZlZ39yiGwuWmUVvWNpMZxbCexqWnboTBbw+5tL8wcOH35S+vXmnr8dzsXYt2+7IkSM3pOv9yeDjmGUwCnNwpTL7xsRtTjjkhDFcEKcj4ESQhUvXwteAL5zAhjSZDzFzN7rVE4QMShLicnoj/XxaNs/WWH/Xdv1+da+7hAcLLczp6TSBeUo3FJh4JFpDakxF7ocsZC4jLHRZ8PkSoOVcsY5uuKsvv+zF/+3o0aO7PjjclYA+cv31PxlDuCVd7z1RRF3w3/3jyp4/qaibyXZgtixObtjNEG6zk/mEyqgDWAFqzl2zldfZgcqSYwacJzGZDGbq5fMZsOggWejv2zY/bqFtUpA1SIHfBixz2hXIzSgsCUMi2CN+tmELj/PWQJCtdnezqZuDHeG+k/7wYDh4xSuvueYP77333l0N6l0H6Ouuu+6nkkt7i/dhD4FTytt0pEt52aExyd5zi6AT6rHwnekZ+jNIlB7aUUyhL0dFDWlIpZao2Kl71sJDJgIU6Jt0eAa1gBv/prxmWGoGM1JyCczJX4ZVPp3cDIx7BogBZnUzCsloYAeBz4x/J6stuiN6+l4oq/j//afg1pgrZk37ykuvuuKOb91//64UmdGrt2vWEfjMxnys9XFNR7JFmfeH70Gyf+MV+8zauGqTNWMLTaaaMwVkLRu2mMSHUMAaJv4Qx5gsKwGEhlauTcZmPBwQSZ9dlN4Hq3oZMY9JzG5AX0k/UBDYcmouWea6qYliOlTyv7RoFdLziAW3A4dOC2CfWtKEwofWq/upB2opx1Pz7WMDY99x++23fmKnr9e5WLsC0H/6r2849OeP+Zs+/vDiXzTRFkrxVLKRzk5BgeTK80bmyMV7gowzsyUQLR3VPrsFbG296kYL6V5796CcVAvbjeS/Cs46KMdZhcdV8+OsKcbdsEzt2IYPTUM9ierJfYcFj7qgal/voEaBghtt8R7YchddYSh2BH+sY9PWfPaxVjjcfEOxNIP95Lgqfu1Tt966K2R0dS11luN//8rfLs9fD/8qWdV/e8XQn1f42izsIKttYsXYBUcA0MOnanP1YW/LcXeBuVgSSVwcy0rHNdT7oSNHoomSuUDqrTDaZuXyKIgWqketyTTR3D9oe5RzISKpELmeI+vcOZLUJUDnBgBu8XIZ0EWeXMUW2kmAuH2cXd9KnZlHeV2fb3DkvdOG8/daG970zje/+pZ/du35N11308f/z05fz+/HWkpA/8GNNw4uf9H8H7uNjfdF719cpEt0aNgYh+JIEVjNXvpdcREBHtWsa7w1D56q7bUrg8iVPZupnSRSni1Z+lsvQ3mItMTP09KQHsl2OJEOSMZwQAI2JpOa+odaZh1jpJK+qlKqpH/WAunAXIoeCNwNBrKC23W7QdYS6SIAvYHx5eGNVvSgTXeTp5/xt3Wwxclo3jyab77pnne/9tMbg5VfveGDn1pqi71UgL7rN24cjx+Z/qPCPPXeMG9eDIKPMUwc2jsqzAWjYB6sIzHeyHfu5X81WAKYHji1MC+/YGIqefcKarrcrrOoTESypL2MeSbIOYM73VKfYSSyUgidbC273K4royuoY5cVUf6zgpklcPvBpxHtDps7ztXSb7fYzOjLjbtSgew3+eJm25h7IWC5vFvpDobnWF+0pqm9Hdn6zQedeeN97//5W3xd3PSyD978+Z2+3s9kLQWgv/Cet1xY2foX3ROn3mHM/JBD0NbWCUwNsdvwNsrYmFfsL8zRJ7q8cA7AaCafiBgmYEH69qFTM3vV+Wu5V5DSHUL1pM4SYjwH+r1Do6tTKWn2zUvyr4sc1HWAFhfG9fnR3Xko1TOItJeRHcH1Hk+AzUAWwRmx1vyzy487290QNUf6+amZyOfaLnOT3RxjSJW0LbhTJoQUOLbOFbONN6UHveG+97z21jbaX3/5f7jjszt9/Z/O+oEF9F3/5sZxWWy+YeL9L7XtqdcVobUx+ciQsfWxJdcgiH4GplPFUJgj5zvzR48uzIKqfC5bQUffi5wWih/J8n3t8am58tCqNL3anOLi6StqqPkmAB5A8yQ5LxmEieZatbimx+I0PYvaDSmyWXqsA3To6J89rRDV21NXwm4DtsvWvP+Vlgifay0S/33wxILeTYzdrqPgp88OrWIhfZbWk9Iqhhz5diHv3r6xdOUbvv7e137R2PK3Hqn97//d37hja6dx8b3WDxqg7ed/+a1/a9yc/sXYPPq20vuLwHEYhMhyt3LxXW8rj6LtXBQDc+k+a14ymZr7FjpvxJ6ludHlkzcX0Tyx2Zgf2V90SqRyuRnG/A3RRQmcnaugOOxmANrsu2YAus5dUBsaehmXELvAsD+XW90Hm9+n2QbeTBnNh/6tnIX44+CCPL7eys1pSdlJYwV9p7ihDo0D8UNUX5iEJYN0N4baurY8Yor2dy615a9/492v/x+z0dp/feWv/c8fWEmEH4i03d3vet2LVv3inzcmvG3o51dhuI7AL4+PyBeiUHomyEPT9POA3Q4By2ce8+b3How0sLJ7l5YonOQ3mq4T5fBaZd7ysoMUfKl2Xd6aewN3SFogdK5MHl4pZW/2kRWItufj2ux69Mvj7KKEDtBZSbqbn6jg7Xzxjk9tezMJe8qTeZQb8uif/9amue/4ogsETa+30UTSsMZpv+UFtXn7SycmtOkTI8kzn6dzZoNQcFyA2MSnzzud5V2Nc7+9MnKfuPwDt23sNH76a8cA/dl3ve7w2Lf/pPSLXyhCfQTp0ShmEaw1vXgAN/K8QQQUrXScRJ/gXydADyZiQbnzY7OpzPvuesoct6uUoYjimkRxQQq9pI6Vj1535T7z0kOTbuvuS4TF2NFBc2ZCIREzDzn7Ctb0WrC2+8D9iVUhhix/q9rR/KTdc9qeJe0DOltm+sdeBkWkFQDoJzdr8+mvnTDBFr0bsBcwGuZmj1Lc8e6XDcyV+wDShj4TqzNn8NmfbUwyakpyf+qimBeu+piP1c33PvzQbW+/+d4d7118TgH9uXf87MH0Gb9tGLcSiP1Pp2OoHMcQWPxwu0OpFlNlOGGhS9oSQzNngKKTW3K98BUBoN+5d8P88YkyXRC++F7aqYiTDN+R5EM5EBynm+XnrznPHJwMtn0anW8cu3Fv6mKclexVFt7Z/q7yQbJbIALoPnaji3POPHYqe9suztmWeZs4nzxO/XMpeX/mgVPmL4/N+czkDqHAOAtOUgrEXFjOzQd/8gAF1PhMSIIBLQcYFmo64R1x+Ax76UEIsJIutBW956ao1oOrPurN6CPTuvrCq3/z5h2hq55zQP/xO3/m/APOvLloZzeWsX4NDTFLQV0UlSFihn0XFjqRhMTFCL0tMOIDT8FMJOWhigBNPGXq4Pbm2ym6f//nz5i5BUgLIg1h/h8sp5e0GcjxqAxCk+6CZKHe+rLDpihd75U7CYJ4Fphj7zHGdL5sTr/1/eceO6/zoTvtjTxHMeogid5TyxVSi+yshntmG6j7vv2TZxbmD+85SZ3pIdp8s9B5yN/iY6/Sa//c+QvzD15+yITFzNDcOpL+ZYF2zZj03RTdOXL6j/LZmn/H1Nt0M9Bg0fGp1rk/qgcrN28Ue25/zQc+/JzNDz8ngL7jvX//4IH5ybdVob3Rtf6nrE2WWAsdtvMZVcMiZDKQWlpOjfVmQ4jkLW4Dz0MyEe6QznKlbDrRpUOaqjS/9ZWT5s9PDbn9Sa4inrONIVcH1b8s0u+uOn/FvPbqw9vK1DlnbDq/eZtQegfpDtSOlUo1X7wtcOuBOYQ+oLsbp2d3e4A2XfZCOdXbzpN7IaeNN5+455Q5MZvnz6xPdS2s7EzpMxolo/LvXjk0L9w3hvofv3L0+Qmxg1ALpvQukhsoN9T2QLs/00OupwhbF25gfDU83RTuk7Xb95Efu+n3z/mgz+8boL/8rtdN2hD/4aipf8GFxWujqx3J1ctyPdFvTp/5bY2pDLJyW/6YrpsCT7IChYKMLDtbaJuLKIa6SnwC9LfWa3PTlzbNNG2J/E9ixd32C2JkK4a789OX7TfXXrInXxy1Sp2NNp31lOuYSZrZQvM5FG67hd4WFOZMRzcpNsqTn9UjfpZs2FlgNhl/dHPcft9pc/TkVidu08vyaC+kkqSumSzMe151IGEYIKaWd5Zm6Fcwe+5Qny+O3U2vWc5rdxsWfybSV8nfigEph0801eRjTXAfCy88fNeP/ssPfd+lfZ8VoL/2KzeuticefWM61wTi8HMuNBOWSykIwN6ZXKxQQEftqCArrIl+tthWgphtAZpcNSsgyCdON0Z6POZqy4QozihUKWJPFqcamf/yxePmzzZKylF7mcTKaYSeC9ObJwjxxrde8wJz0b6RSvsz7dT0Mxuml3Q2eevvB22F3V5c+e6A7u0A/x9Ad8GcjMT4f8VdW4xe11Vee5/zX2Y89sTXOI5zJ2li1NbGIQ1J07hJVVUVQqC8ICilqigSiShVeABEBM0DhWckxAOtUINQoYGWSg15qkpVQUOSpk3ShiRubrYTy3F8G49n/vn/c/Zmr+ve5/yTigcQI1kej/85l73XXutb3/r22hALD83U5b8n3Pzk8ZUEoWruWioGp3+i9rwmNNzC/TdGuP3K5fS5hhZzjFPuoiptFujywTLOjkGrnECNVaUFIO9IW8P097yT/IO7SSEgwbmJfvhmOxh+Iwzqf3rvn37t2/9vBv3t37x7vG3H6IiL65+pwvRjCTYtOukl42MwzMVHl/kszmmDtY0NhdfoeEszVg+6p1qNRyGHFjr4WjWXElzsLARHExPgdMq5P//ECpxDLx1790qDG+zaUapzAKN0rV86uBf2LS8AGOTIMGOTx7WJpcsaD+2MfelUCgv+2RrE6PXjZteMHajRl5+iZ378+ZNw9GxrY4q5QV9PQuODuURyANfWq/And+6FCquDvKGMxEt8bWXhSWLY3clTGLA+n42pJd7zVdpYyADM7PyA5g/p07aqj4If/vOlwcKjtz781Wf+zw0a/cFTD37o4ELwvxvi7Berdrrbk9Y3cLED5NARaf9gbJLLRzk4Xe2ez8/rvmCewHKFx8BhkH8+b9DO15xz9wwaPUEgWecAHj+6An93AuNGVWyxchJgS31yoCPZ0JNvqyv4+Pt2wpXbF+YwNMeT2HXSVn7m3nWVVQg3M+jQYTgyVi/NNE9PGawMP8sXSkS/+dxb8MqFQMlt6K22LI6K9tzjNFafui7Cket3QTtbE71Km2y3tXHme7bWKkiNWK+12Re2ftBnzCrCYvEVeYQXOBJlgUY88hn7nsAAYckzwcGj6378lcN/9rU3/lcN+rnf+eD29bH/jXEz/UTyvj/PGbiaAogx5wflpajYSj2tJHpU6qhsPCrZXNpGFhOVk9C5pg2S/C26iy406XqGPKgOGj+Cv3jiFLy0vggzjwklF0eD23zwNQlaSKHnVw7tg30JfthRaQCbGl6JbXOFT4sq3jwtbapV71ywG/rs8V0Mugs5nBnzv/zgJBxbmRFP3490OhYEs6RKiIWTa6tL8NBde2AhtsL3i0FKTuPkJfsYvP9vV9yne2PY1OhLLG/X81aiBdo85aTOgMyJq5s42PLd9LO/OXXi3Nc//OXv/I+Ykk0N+qnPHblzMJ1+JlbtfXWMS5FaTDVlmm+nonaMUAzaLk1eQ0+eaomFYO8pGI0bytHv9Q25b2ycZXMiWLIhRvpvYpyE39M4HVtx8Oc/PAsX4kJ6HsGJsjg6GbsVENgAB2l2P35gN9xw+aJs5dLny0ZtvtkpC9ErVfc8dGnM2UMX0s5yYmQhePleK4enL27AY8++A2c22qJi2HUACgsIy0vPkWHCyQ/cPITbrl6G2XQKFR5aLtlcSwpC/64G3Z8b6DkzcyZ9++59rpxnw9qlIeL/0xno6f9Q642wxI/eaX31V+fq8V/e8fCjP7WtWcegn/zsvfcNmtXfS+91V0zJwkCGmA+O5NGmBMAklq770n3jMkw2N1Xs5R1Pl+t8IlqRIsgg0+dCKMrTYHCh9Mr9ASRulFZ9Bd95YwW++HKAKfbXiNjUJVKPZzJUoaK0iihCB+K5Udh/+3Xb4AM37LBIYdRWMXaaWG6qv+gYNO+A0UKIVSVh3quZ19dHSh/5j6On4enja3SchoQtu0e5aYCeRbUvlAvX8AvbZ3D/4T3g2nWuArZT6mXmAp9k4FxL+QfNMdGb88nfnOOhZ/ME2UwSq/Uwe5aQNS99G/F59rlgE0F324NEmJY2NgyRDjw5Wdj5x4c+/5W//akG/fSDH/v1Ybv6BTdbvzqQvjiQZ+XqVN7a319hAPMG3KkJyIP1vSAT8vz7bXT5nQoooSKessXAXFurcrX3snD8IjhTMc6u00e/+uIF+Mab2A+jlu3BTs7JNuWIKOtaa2OAngsn68DeLXDPLbtofx9AH0ObPIkhh/xME8MSckRjN0Cp+U2NOnt+HuXXzqzCd//rLJyetHS+OHK9pYFtZtBIcdJYpPncP9yAP7x9L+wcpXFqphwxk9PCgorn/I+el8yPWAuuDpb36EZMTRTxT01JJUAvibSIphvNM43n1FaM8eJktqqq7sDSrmD8PBfQ0gRAHGz/x0t+/dO3PvzNuc2+7tnP3fXlarL2SWYcZtQV04nYpywIOKoIyRG/kPUG2WtJyI7GeHX+T2dGO+drM3BRBJNewui7Yi+gGrRqKVwhwO8sJig4a6uYO5NVtjggaRV96fun4N/OjpkiD8y+5qhhNTGOBlq0QD10+ueecQX3HtgFV+5YmPcKpfcBpdvz2YM6jiXs0Dy5LNboKHCi6+DYmUvw5Ovn4Ni5qZwAIL30CuxdjkNZaaQMJt16a8pfHjy4BDfvXYKGoMaMFi3P9VBYjiBwsKH7ijpALW4OYti40xzV9HudORFJorYl05ym45wczDNeBt1Uv569NhMRaTzHW6AZbP3RO6PxR+9+6O9PdubihQc+EGMzkxtwSNQvXxQh6EIFzZY9oes8aN/YbCKVagtFUiGGSo8uuEypvXLgdEF0qbkcZvV7LWsbJJKtRxQ68fnrGtbDAP76+2/B0yuL1CDRURlen5+v3UJxjcIQcfc4GtQtuxfgyM27YHFYFzArV/OgMGg75aq8TiiZDZjzzij1fPnkRXj69fNwahXoAHtS4kmZuYxUbdvaeATh1MlBoIHWFSwlcPXpG8dw5w3bE27eINyMwq48hwOZ89AZ86AVVaRAm9mc8+gbtysWV04cHT4gzW2/yGOVUd8lBLLEIVAFE7UiruZE3pntpIU3wKLa0ktr3t176AuP2em47kcP3Ba98Jax05s886BRVgxrj72+ieE32emU/y3hJtrDl4oyxV5suHRtwqtiDgWuioVHzlWq2iY/QzXZ4e1Y48vh3nOH0BBEr+5JuVcNR7DaVvDFp07Ck6sj4GYFNWiAYBaSNwKojiJXzxjx4/0Xk5HdfeMuuGnvYjcBVA/tFXIVO0o6SWEXcuBDY4OZZ944By+9vYbndjGHLwU3OxlAcK15yRBscXjZdePooCIPW9wUfu36Idx7025oZk3CzhPyzGAUnUISDldqxPxIQdZqlvB6HQu1D5UuFZSezllU1R6+GgqfZF76uY/+m6/hmSOIXGRr08LDBafdY+xcHMdn3MQER2K98NL6eOc9hx/+h7fYoO8/FKvIzAPiKWJoRZxCN7RkRyZAcXHQahWDhtIjd1ZpJzTJogDGoWxAOAGq4CqMcxP2gV6myOqztqD/OZ2M0ssrV444bEANX7707Bn43tmajG+Ki6sB+6wmLKqTmCsj42JJC2T/jgEcvuYyuHbnFmuU2GE7ina3XciRXcfrpy/CD197B46dncBMektjcpbvGTrRsDRoJ1W9YDRYer1Yw3K1Bp+8+TK4Iz1bO5skT4ksVQOxMObMOztyKhSxvC/ypmiBbjMPzfLeRv6vEqycIw8/V8jGn6mMwrOz3FbtibTnEo246aWXaqYDqyRLcs1tjLHj/M6XJ9t23HPooUferGmgWvGkeQkJ+V1ChsqwjBmPlX39XAZcfvFna9FftOJNaj54B/+NG2c8E/wdzG3GUVJytfy0Vf9sz9Q3/tLoQWINerEwXYfxYAS/ffhy2PPC2/CvJ/HEqwG1uw1Rj0iGjjfKEk/HyQv+nS6L2PbY2VOwe6mGw9fugPdcvgSjgS9egZMKY3UEl6II//nj5+DHJ1fh5AoL8X01ItzLHg46Y8psg7OfGyQSj1+JUWAOddVoBX7r4BVw066lBF+Sl8P9lyzOAAfdxLtM7C1CytTnqDgQaOOKJH+TaqHTyqYTgsDbdcw90zMXpAB+BhNBzwcdkTyYDYSPR3BcKFOnwEWxIFE8fb6p07NduGm4svpI+u+PuBd//0OxWb+UblDLPjM03JngWS8F6JZVbepBi9DjNTyXBlWGpR4rQskO+Ly7msZUDSDOZdU5vxNcKOEsigqmcl444s3wu9THRDnWMv/HWJQoq1FaZyP43ivn4JHXJrASRtTiK08mPxuNQNvIpGg1kg1LdQo6WwvJmJERueOG3bC8ODQ6D/8XW4S9cuoiPHv8Apw4uw4T2sAKVBgBKHZwlzw7PkLBV1NjG89RjcY/RNNe49Fzt25r4VPvvxyWt6b5mm5wBQ+xKO5GcWxMBvlIIjAT2BFzP7y5GgCdImNEgdKPJFJqy7qDrjHhjeacS3YOpaMRd5+TWnkf4iA8WR99thJnSz1GospZGeMjrJntuvIT7qU/uCfOLq0wVpEHd67hBAgns+KXBlebR+jrCfSrXPndil1pZDgRfL6DilzKz6v36YS24nNa+mawxQbdxrDpPdU4sJ0uDRBOKoVFvjcmX1CnLD+9+7Gzl+CRF87Dy5Mh9e5QTJdDfNdDaTjGe3cSG+CDhVDFdvn2IRzefxksjAfw1Gvn4c10j43ASXBw2u4gl8nL5FppSzXoLB+VSGPWga/TwI6qgV+9bivceeMy1Ol9wuQiCYF40bV85gv+EX0MhW+Cjs2coc05B0zCYiPsje9FCYUluZDTp08zqyGSYEr4eqxJpeOqMNQRHUgRvYgiYhG4/06u47h18HAA/rLdz7mX/+gjsVm7KO59INoJDilBAT5iOMceOkiRxVlgLtiQooWrJQegdE2RQUv7LIBM6bgyJGnoQijTtrwFSxVgkReFct7KkDCjKD/h7EHvbM/IhQzNYAUK0EcbqMbb6AyTx46eh8ePT+GSG3IRRIymDKtlkSBCN6KgJ9+YTsigqbtRWjCeRO+OekGTIF4iRf8LE95WMGnmeXUswErfGiXxe9zgemhbSv5u2Qn7d6YIQ+dYbEjRKookNxQJbsjXIUNsOoWyvmOweXGFNpoNQRZmV2ogpUb6i6S8sVs5dgLrvG3u8MKH12AwBkSc5jhZNWZHcjYydNLEoNgqjVnT4HkcMNyyHdtL8JYk5Cf9YEj4pCIVW2DPQC/kaYVWErbKYokOjMKCvse244M7FZeMCZ1WAqHIomOxTaoss8rgEmRQ9yS2yYlF8iK1QJLYXVzYnwJDZLnauXCA34+SDVyCYUoW7/vZXXB47xp8/Scr8IPz2CI3eewUsbxTqklDpybLfD/EmJPJhN5rOExGnKBMJW26zGBBk0bGlGWySc8Yph2JbH6HYM0YcewRJw/qAewbTOCXr0/w5uo92L0RppPVZOBp5ip9R09GpWeNO8GjpR6jwshsj9iNsB0xl0ZSYaOi9PRVW1CYjHPYSnTjHLxiyGRORd7Ze20SYc+aF5NnjlzzOJH+Bn1orADHihw+vdqwMj1LDbJfhAy4lk8g74fiFeE1mXKRY6BiC7pBVKYmr+g2F14ypyh70WIQT56tuitUEU0H/Yx3HgeFQN6OsOSj0PCxRadsiSuPGA+ycl22yGLHCMV3Cb/GMtcK2yjhuX9xA67fvRU+u3MLPH/iAjz66nk4tj6mc09wDEiU78CYAMSQk/V1uv8gLYiKOoUOeEQllFIurhOkTqCojuV2BgoHIH8OE72K74eOpq4d7Ko24KP7B/Dha/bA1oWFZEApIqyzSCkQM0VHfdkYlYUuM7bCqFlTrZStJPkxSwIY4VXiPySqmmpSFo7E4lDw5bqINBITkeGlR4p482jVYHVEGlE9wyItcjmWImNPFl0AmULG5xgQLKx5JVRFla3O4UkeBEs0GNaDJHR8CLuGf+DEyUlIJ4OWB3PcBJFmpIBN/QINj4RUhTThwPP+8L7By+DI55Ed4YyMW35R6Zy3boLpLLzBF6Z/uGWAk/NTkOpqQfbYOS6k0LMmg8SJa9YvJgMfw8/dsBMOJAz8n6+dgcden8CJSUo8HIrUIyUmKPDB0vhoNCJjInG/lW6dhWel10rPW3pg46qdM4+skY+6j2Ja5Idw1biFI1d6uPOa/bC8UNO928kKO6L07KrX42IJzxVPkXR4iiy5VQcyByu0PG8JXZbq0u9zWipRphLpror59f28ZsxglWLlfMVGqOos8LSqskAMHUHG27rhQ3CyVHy94oGouQcnyCxVJtkGe0FfsVeGeiHdbCYTxMaG/GoWjWq/Y8FEBaOhHpf7qIGVqk1ID1nEY5MuuAr0JXDIWi/4yVFSwCIj3wmFLMusrGjD60uTq+yNNUx66TnHqLvlQgsxGC0nlkjDO06Eq8WtKXNuYLq6mnLGIdz1nj1w29Ub8MTxVfjWqxfg9VkN6zhUacww4XPCEClL0TFWYP3GPHOgE8c9PJQyc+RYI+mbh+nnS3EdDuxagDuuGMKBvcuwmCLJLHnkNsEbCkjjBZ43PUFGS8Y92tIoxE0WFSd4sMkX704H7XAaVeMtOpnyl5ylrUbTBUl4Cy42e2xLmXIX2E7+ZdXKfFAqKG0nTI+xeynpRx6dzOjFBz8YOYMNtFWpGi3yBNQDNmw+qTJNeyshX1VpcsOCoqEqFIZvX0sYDVblKkvUirnoVCkHImwhpCiy1CirTjrROy0qdMbPJi4PRPYsRtnhfUjgUlHyh5wnnUUoHsJJyy/yGBVHAEpSoqeEA7f0RybqoRqOYZq+/fHJc/Cto2fglckYLmHzxiihtsL3xN+L1JahdSLLBIFuMXOpOkFUp0wPUXvdygSwxTdwy1IFt+4bwXv3LcO2MTNQWDnDhI92wkvJOkqpm4/vZO9newFtrLp4uK9zLj+XDQq4bI3/Tp6T9stjWwjR9PA08S7xmJ7FxXm2SqlIWx6OdwVBkOAuepUSeir7ZZBSbImLPzO9ENlkQKKivUSEhatGVNNIcWvGydSQBTeO3P5MCGw8rayiej6Xi6QcW9bk20yzaaJFAMAHSxrmsmYNyGZ8PJiV54Pkc47iRPgSbBXri9ug2wSU98m6BGQOCL8W9+FwxoIrK81bUYBxXtugoKmhns2Ez/DclLVVQk/v23cZHEyJ2Or6FF49vQIvvL0GP7kQ4a21CUxw8cuxyA4qKNV2XgomlLwILVyFhIthCtuGAD+zBeD9u0Zw057tsGPriLE3wpr18/S8dYqezWhMBtuKRtATwpJ5ablfnod3M9JCmyPY1doNi1HlpBSJ7YF5RSc5B39WtRYC6bTAVtxPnVBJ45UMDSkua3aXpapSn1UdQNdz5wosfQakDkCRekY7XmpqKlIx3wz1gD01rkKcbBLDt0RuOyGx0XPR7hMvHhE9hbN4UITeiqgrpc600sgLwcm+Ny8VrDprGoS5IISMAxdUlshbPPnsVU36lJd2PW+djYgHS9gNPUSQsE9VYD/ODzzogTwMgyhKRB4sjEv1cJHLx7MJhLUVWEwTfvCKJTh4zQ7yyKsbUzhxbg3eXFmDV8/M4Dwe3DlpYCPwBNaD5L3TeC6PBrB7wcPepSHsWarhqm3bYDl9P64rio7NbApufY241iphY0hRkxwMLo7Ap95WaZG1qIwDxrMcRZz0Osmhn+Fhm4VNXnfByM750BUlmZeQeUHxVjB8HcQGnFxPRFNSfIuQIynTzZH5eylZ60aFqEUVB7JQWoqcqtNgZyq7Sku4psyJ4xpCTXCUpQL4TIE8dGSvjKuxrobQTNagGi+aVjY2rXlkwrGk4ZOiQKERcz4LUGyVesHBGOoFEzs9wgnAMBL7lEYgSNZ+MJTRECeDEGIxGCXFJAxPTyM8L6apBNdJNxBz811P5qWBYZYbxVxVq8fJyIaEs1En0WyskiEtps/fsiN52N274Z4bOTmzjdMk1CGikHJW8oy4Ox3Xa7MGceNCwsUSdpG3Tp44ukUeu8gcO1c7weBUFj6JxBJ0X2HZ/sCxwUvLBKZks0S3X/wgJqFtdE2YM+HIWVkk0wpseUCBenPb8Ot0txJAV72Y6V4z/g7mBxtznQslCzQ5tahXVUU8osbKtYB+FsR4wra10SwY8tkhVpL95uSLAl/M+wO1X4M5W9nFgBl6pD1sAXLpuDKky5mzSiPzT21C2FIpyVA+OO9zATk/ZdAJhzpgXlpxBVmQWgwp0lSLCqpN0SfQntIgZ3lHfQa0wpbZoYBHqlW80JDCw+KJ31jjYEAnzM5EOsuhPcgMzzDcB650hgGW4MfivYCET9SwBt+tdVkTrDyjJlHghbKKzF5AtKOdg1Q2Mxzj99U2ujlRl4UsrJYea2cQTO9NGnml5ZwMiyvmSusJWQLMNK7Px9rqQiPnJ3NE1KQnUiIKg8KkV1bjUedUdI6EGnS3vNihsFta7KnxaGBtXUX0Fh2MHqjDEB5aExqdZ+2VzIo8ZTBY/Mb7BXkFKYeooTuvwF7dBcrlzdqAATcxN0PWzZtsUJXX/mtg3qV7za4WhBakc9lEs+OQT3NS4sgg8ymyGoqd9Z/wZKyVdHPSdwnS500pSR6PCnshcOIcMuShMQsN67KJKVApwUzXkcg/83VVagre2zsb1FJ9ro5v4dXwS1t06YaHnHyVME1CPuTzGUuFoAq1slPiqiKJoYpcyKrCIcsAtJgTBd7xLiXhnmXurVBDleDWFgKEKEUwqfhG7dldcVQTaWqsqgLj88L7b/EJGMiWhMoPAAAAAElFTkSuQmCC');
    background-size: cover;
    padding: 2px;
}

.club-default-logo {
    background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAzgAAAM6CAMAAAB6mha7AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAMAUExURQAAAAIGFQEGGQMIFgQKHAwMEggNHQ8QFgoQHhAQFhMTGhgYHgYOIAgOIA0UJQ8WKBAWJhAWKBMZJhMaKhobJBgeLRkfMB8gJxsgLhwiMiEhJiIjLCcoLykpLiAmNCMoNiUrOSksNSguOy8xNyswPTAwNjE0PDU4Pjg5PS0zQTA2QzM4RTU7SDk8RTk9ST1ARj1BTD1DUEFCRUFETUVITUhJTkJGUEVJU0ZLWElNVUlOWUxQVU1RWlFSVlFVXFRYXllbXU5TYFFWYVNYYVNYZFZZYFVaZldcYldcZ1dcaFldY1ldaV1gZltga1tgbF5iaF1hbV9kal9kbmFjZWBiaGBjbGFlamJmbGRmamRmbGVpbWlrbmFlcGNoc2ZpcGVqdWdscmdsdmhqcGhrd2ltcWhsdmxucmxvdGlueG9xb21xdGtweWxwem5yfG90fnFzdXJ1eXZ4dnV4e3h5d3l8fXJ2gHR3gnN4gXR4gnZ6hHd8hXt9gXt+iH6AfX6Agn2Bin+CjH+EjICBfoKEhICDjIKFiIGFjYSGiIWIhoaIiYmKhoqMjIOHkIWJkYiLkoiLlIqMkImNlYyOkIyOlo6Qjo6QkI2RmZCSjpKUk5KVm5aYlZaYmZiXmpialpucmpaZoJqco56gnZ6goJ2gpp6hqKGinqeonqion6OloqKkqqaopKaoqKWorqmqpautqaepsKqssq6wq6+xsa6wtrCvpbGwpbKzrbe4rri3rLi4rrS1sbCyuLa4sra4uLi3sLq7tLy9ub/Atr7Aur/AwcC/tMHBtcPDu8fIvsjHucrKutDPv9DQv8XGwcbIwcfIyMvLw8zNyc3O0c/Qxc7QydDPwdPSw9PUy9bYztjXx9jXyNvbzNXW0NfY0dfY2Nzc0t3e2d/g1d/g2eDf0OPi1OTk2ufo3ejm1+jn2Ojo1+vr3O/w3/Dv3vDw3+bm4Ofo4Ozs4u3t6O/w5O/w6fDv4PPz4/X06ff47Pj25fj36fr55vz76fX18Pj38P398f39+AAAAANqqosAAAEAdFJOU////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wBT9wclAAAACXBIWXMAAA7DAAAOwwHHb6hkAAD7jUlEQVR4Xuz9D3wi150nij7LNXz6zROloo/xqp73Ac1wPQtIBI8mwrQJcryj5A7R2/au/dS22mPv+ikdX21ypdGSdzNPWXnvcJOOwubuJLc7xu1PY7cn2sGdkdY9M2EmpN+i6RkT96580cYRnqj9aNuQOFzHwZmuSjdkyu/9TtUBqqAKEELqf3yd2AKKquLU73t+f87v/H7/p/9fDz30sG30iNNDDx2gR5weeugAPeL00EMH6BGnhx46QI84PfTQAXrE6aGHDtAjTg89dIAecXrooQP0iNNDDx2gR5weeugAPeL00EMH6BGnhx46QI84PfTQAXrE6aGHDtAjTg89dIAecXrooQP0iNNDDx2gR5weeugAPeL00EMH6BGnhx46QI84PfTQAXrE6aGHDtAjTg89dIAecXrooQP0iNNDDx2gR5weeugAPeL00EMH6BGnhx46QI84PfTQAXrE6aGHDtAjTg89dIAecXrooQP0iNNDDx2gR5weeugAPeL00EMH6BGnhx46QI84PfTQAXrE6aGHDtAjTg89dIAecXrooQP0iNNDDx2gR5weeugAPeL00EMH6BGnhx46QI84PfTQAXrE6aGHDtAjTg89dIAecXrooQP0iNNDDx2gR5weeugAPeL00EMH6BGnhx46QI84PfTQAXrE6aGHDtAjTg89dIAecXrooQP0iNNDDx2gR5weeugAPeL00EMH6BGnhx46QI84PfTQAXrE6aGHDtAjTg89dIAecXrooQP0iNNDDx2gR5weeugAPeL00EMH6BHnOsGf/+m3nv/m17/89B98/nOffuKxxx578FOfqOJTDz52+LEnPv3Zz//B01/+D998/o//9M/Jl3q4ZugR59rhey+/9MKz/+vTX/jc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');
    background-size: cover;
    background-repeat: no-repeat;
    padding: 20px;
}

.player-info-logo {
    background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAA7EAAAOxAGVKw4bAAABK0lEQVQ4jaXTsUokQRSF4W/aiXwCQSMRM0HBWSNBxFQw3sBERAoDQUFYDcXA0Og6GhuI7Bss8wAyoWgmy2JgaGBgIIOB3WvbdIPoHxV177l1ilPVUiGlNIl1LGE83/6HHroRcVPub5WEbRxiG+3q4JwBTrATEc//B+TiS6w0CKv8wXJEPGf5xkGN+AnzmMJ9pbaEY2illCZwW2P7KiLmcofn+FlznZk21mrEMJtS2sNjjTvIkNpYqCkWJ2yWmutYzLxHVeUuIkYjYtRbhHWMNU3+NBn+fkN/n2m29xl6Gc7w8gXxAN3iJR5ht9LwgK18/QvTlfppRGwU+e9j0se8R3DRZL0YPgT9fn/Q6XR+Yxg/NOc+QBerHz5Tmfw7b2DR2xspkurhLCKuy/2v0aRM5uT00V0AAAAASUVORK5CYII=');
    
    background-size: cover;
    width: 10px;
    height: 10px;
    background-repeat: no-repeat;
    display: inline-block;
    padding: 6px;
}





