/*
 * odds-widget.css — ราคาบอล widget
 * ออกแบบให้เข้ากับ Baan Sports Gold dark theme
 */

:root {
    --odds-header-height: 0px;
    --odds-columns-height: 48px;
    --col-team: 320px;
    --col-odd: 120px;
}

/* ===========================
   Widget container
=========================== */
.football-odds-widget {
    font-family: "Noto Sans Thai", "Thonburi", "Tahoma", sans-serif;
    color: #f3f1ec;
    border: 1px solid transparent;
    background:
        linear-gradient(#131416, #131416) padding-box,
        linear-gradient(120deg, #d9b66f69, #323335 28%, #323335 70%, #b88e4644) border-box;
    border-radius: 12px;
    overflow: hidden;
}

/* ===========================
   Header bar
=========================== */
.football-odds-widget .odds-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: linear-gradient(100deg, #d9b66f12, #d9b66f04);
    border-bottom: 1px solid #d9b66f20;
    padding: 14px 20px;
}

.football-odds-widget .odds-header .title {
    font-weight: 700;
    font-size: 15px;
    color: #e0c58d;
    letter-spacing: 0.03em;
}

.football-odds-widget .odds-header .controls {
    display: flex;
    align-items: center;
    gap: 10px;
}

/* อัปเดตเวลา */
.football-odds-widget .update-time {
    font-size: 11px;
    color: #6b6b66;
    letter-spacing: 0.02em;
}

/* ===========================
   Refresh / Retry button
   ให้เหมือน .refresh-button ของ Match Center
=========================== */
.football-odds-widget .refresh-btn.button,
.football-odds-widget button.refresh-btn {
    all: unset;
    box-sizing: border-box;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    cursor: pointer;
    background: none !important;
    border: 1px solid #3d3d3c !important;
    border-radius: 5px !important;
    color: #ccc6b8 !important;
    font-size: 0; /* ซ่อน emoji 🔄 */
    font-family: inherit;
    padding: 8px 13px;
    min-height: 44px;
    line-height: 1;
    transition: border-color 0.2s, color 0.2s;
    box-shadow: none !important;
    transform: none !important;
}

/* ↻ icon — เหมือน .refresh-button > span ของ Match Center */
.football-odds-widget button.refresh-btn::before,
.football-odds-widget .refresh-btn.button::before {
    content: "↻";
    font-size: 22px;
    line-height: 1;
    color: #ccc6b8;
    display: block;
    transition: color 0.2s;
    transform: none;
}

/* "รีเฟรช" text — แทนที่ shimmer ::after ของธีม */
.football-odds-widget button.refresh-btn::after,
.football-odds-widget .refresh-btn.button::after {
    content: "รีเฟรช" !important;
    font-size: 12px !important;
    color: #ccc6b8 !important;
    display: block !important;
    background: none !important;
    position: static !important;
    opacity: 1 !important;
    transform: none !important;
    animation: none !important;
    width: auto !important;
    height: auto !important;
}

/* Retry button */
.football-odds-widget .retry-btn.button,
.football-odds-widget button.retry-btn {
    all: unset;
    box-sizing: border-box;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    cursor: pointer;
    background: none !important;
    border: 1px solid #3d3d3c !important;
    border-radius: 5px !important;
    color: #ccc6b8 !important;
    font-size: 12px;
    font-family: inherit;
    padding: 8px 13px;
    min-height: 44px;
    line-height: 1;
    transition: border-color 0.2s, color 0.2s;
    box-shadow: none !important;
    transform: none !important;
}
.football-odds-widget .retry-btn.button::after,
.football-odds-widget button.retry-btn::after {
    display: none !important;
}

/* Hover */
.football-odds-widget button.refresh-btn:hover,
.football-odds-widget .refresh-btn.button:hover {
    border-color: #d9b66f !important;
    background: none !important;
}
.football-odds-widget button.refresh-btn:hover::before,
.football-odds-widget .refresh-btn.button:hover::before {
    color: #d9b66f;
}
.football-odds-widget button.refresh-btn:hover::after,
.football-odds-widget .refresh-btn.button:hover::after {
    color: #d9b66f !important;
}

.football-odds-widget .retry-btn.button:hover,
.football-odds-widget button.retry-btn:hover {
    border-color: #d9b66f !important;
    color: #f6dfaa !important;
    background: none !important;
}

/* หมุน ::before ตอน loading — border ไม่หมุนด้วย */
.football-odds-widget .refresh-btn.loading {
    opacity: 0.8;
}
.football-odds-widget .refresh-btn.loading::before {
    animation: odds-spin 0.8s linear infinite;
    color: #d9b66f;
}
/* หยุด ::after text กระพริบตอน loading */
.football-odds-widget .refresh-btn.loading::after {
    animation: none !important;
}

@keyframes odds-spin {
    to { transform: rotate(360deg); }
}

/* ===========================
   Inner wrapper
=========================== */
.football-odds-inner {
    margin-top: 0;
}

/* ===========================
   Body wrapper (scrollable)
=========================== */
.odds-body-wrapper {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    position: relative;
}

/* ===========================
   Column header row
=========================== */
.odds-columns-header {
    display: flex;
    gap: 8px;
    padding: 8px 16px;
    background: #0d0e10;
    border-bottom: 1px solid #2a2b2e;
    color: #a8a7a4;
    font-weight: 600;
    top: calc(var(--odds-header-height, 0px));
    z-index: 50;
    align-items: center;
    position: sticky;
}

.odds-columns-header .col-team {
    display: flex;
    flex-direction: row;
    gap: 12px;
    align-items: center;
}

.col-team {
    width: 30% !important;
    max-width: 30% !important;
}

.col.team-block {
    width: 30% !important;
    max-width: 30% !important;
}

.col { flex-grow: 1; }

.odds-columns-header .col-team .label-time,
.odds-columns-header .col-team .label-match {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.1em;
    color: #d9b66f;
    text-transform: uppercase;
}

.odds-columns-header .col {
    padding: 6px 4px;
    font-size: 11px;
    letter-spacing: 0.06em;
    text-align: left;
    text-transform: uppercase;
    color: #6b6b66;
}

/* ===========================
   Odds body
=========================== */
.football-odds-inner .odds-body {
    min-width: 100%;
}

/* ===========================
   League row
=========================== */
.league-section { position: relative; }
.league-row { position: relative; }

.league-row .league-cell {
    background: linear-gradient(100deg, #d9b66f0d, transparent);
    border-bottom: 1px solid #d9b66f18;
    border-left: 3px solid #d9b66f;
    padding: 9px 16px;
    font-weight: 600;
    font-size: 13px;
    color: #e0c58d;
    position: sticky;
    left: 0;
    top: calc(var(--odds-header-height, 0px) + var(--odds-columns-height, 48px));
    z-index: 45;
    display: inline-block;
    max-width: 100%;
    width: 100%;
    box-sizing: border-box;
}

/* ===========================
   Match card
=========================== */
.match-card {
    display: flex;
    gap: 8px;
    padding: 12px 16px;
    align-items: start;
    position: relative;
    background: #121315;
    border-bottom: 1px solid #1e1f22;
    transition: background 0.15s;
}

.match-card:last-child { border-bottom: none; }
.match-card:hover { background: #18191c; }
.match-card .col { padding: 4px 6px; }

/* ===========================
   Team block
=========================== */
.team-giving  { color: #ff979a !important; font-weight: 600; }
.team-receiving { color: #f3f1ec !important; }

.team-block {
    display: flex;
    flex-direction: row;
    gap: 12px;
    align-items: center;
}

/* Time column */
.team-block .time-col {
    box-sizing: border-box;
    position: -webkit-sticky;
    position: sticky;
    left: 0;
    z-index: 40;
    padding-right: 10px;
    border-right: 1px solid #2a2b2e;
    display: flex;
    flex-direction: column;
    gap: 4px;
    align-items: flex-start;
    background: #121315;
}
.match-card:hover .team-block .time-col { background: #18191c; }

/* Match column */
.team-block .match-col { flex: 1 1 auto; display: block; }

/* Live badge */
.status.live { display: none; }
.time-col .live-badge {
    display: inline-block;
    background: #ff979a1a;
    color: #ff979a;
    border: 1px solid #ff979a33;
    padding: 2px 6px;
    border-radius: 4px;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.05em;
    margin-bottom: 4px;
}

.meta-date { font-size: 10px; color: #4a4a46; margin-top: 2px; }
.meta-time { font-size: 14px; font-weight: 700; margin-top: 2px; color: #f3f1ec; }

/* Team names */
.match-col .team-home { color: #ff979a; font-size: 14px; font-weight: 500; }
.match-col .team-away { color: #f3f1ec; font-size: 14px; margin-top: 5px; font-weight: 400; }
.match-col .team-draw { color: #3a3a38; font-size: 11px; margin-top: 3px; }

/* ===========================
   Odds values
=========================== */
.odds-inline-group,
.x12-group { display: flex; flex-direction: column; gap: 4px; }

.odds-val-row { font-size: 13px; font-weight: 700; color: #f3f1ec; }
.odds-pos { color: #8ed3a5; }
.odds-neg { color: #ff979a; }

.odds-line-inline {
    font-size: 10px;
    color: #a8a7a4;
    font-weight: 600;
    display: inline-block;
    margin-right: 5px;
}
.odds-line-row {
    font-size: 10px;
    color: #a8a7a4;
    font-weight: 600;
    margin-top: 3px;
}

/* 1X2 badge */
span.x12-badge {
    color: #0d0e10;
    background: #8ed3a5;
    font-size: 11px;
    font-weight: 700;
    padding: 1px 5px;
    border-radius: 3px;
    margin-right: 4px;
}

/* ===========================
   Fallback / empty / loading
=========================== */
.no-odds { color: #333330; font-style: italic; font-size: 12px; }

.loading-cell,
.error-cell {
    text-align: center;
    padding: 32px 18px;
    color: #6b6b66;
    font-size: 14px;
}

/* ===========================
   Grid 2x2 layout
=========================== */
.odds-grid.empty { padding: 8px; }

.grid-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 2px;
    max-width: fit-content;
    max-width: 80px;
}

.grid-cell {
    font-size: 12px;
    display: flex;
    color: #f3f1ec;
}

.grid-cell.line         { justify-content: center; color: #a8a7a4; }
.grid-cell.line.secondary { justify-content: center; color: #a8a7a4; }
.grid-cell.odds.odds-pos  { justify-content: right; }
.grid-cell.odds.odds-neg  { justify-content: right; }
.grid-cell.label          { justify-content: center; color: #6b6b66; }

.odds-grid.three-cols { display: flex; flex-direction: column; gap: 2px; }
.odds-grid.three-cols .grid-row {
    display: grid;
    grid-template-columns: 24px 20px 1fr;
    align-items: center;
    gap: 4px;
}

/* ===========================
   Mobile (≤900px)
=========================== */
@media (max-width: 900px) {
    :root {
        --col-team: 190px;
        --col-odd: 80px;
    }

    .football-odds-inner .odds-body-wrapper {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        position: relative;
    }

    .football-odds-inner .odds-body { padding: 4px; }

    .match-card {
        display: grid;
        grid-template-columns: var(--col-team) repeat(6, var(--col-odd));
        gap: 5px;
        padding: 5px;
        border-radius: 6px;
        margin-bottom: 2px;
        position: relative;
        min-width: calc(var(--col-team) + 6 * var(--col-odd) + 5 * 5px + 8px);
    }

    .team-block {
        display: flex;
        position: sticky;
        left: 0;
        z-index: 60;
        background: #121315;
        gap: 5px;
        padding: 8px;
        border-right: 1px solid #2a2b2e;
        box-shadow: 2px 0 8px #0008;
        min-width: var(--col-team);
        max-width: var(--col-team);
        text-align: center;
        border-radius: 5px;
    }

    .match-card:hover .team-block { background: #18191c; }

    .team-block .match-col {
        display: flex;
        flex-direction: column;
        gap: 3px;
        width: 100%;
    }

    .time-col {
        writing-mode: sideways-lr;
        width: auto;
        background: transparent !important;
    }

    .match-col .team-home,
    .match-col .team-away { font-size: 12px; line-height: 1.3; word-break: break-word; }
    .match-col .team-draw  { font-size: 10px; margin-top: 2px; }

    .match-card .col:not(.team-block) {
        min-width: var(--col-odd);
        padding: 6px 4px;
        display: flex;
        flex-direction: column;
        text-align: center;
    }

    .odds-columns-header {
        display: flex;
        padding: 5px 6px 5px 0;
        top: var(--odds-header-height, 0px);
        z-index: 70;
        align-items: center;
        min-width: calc(var(--col-team) + 6 * var(--col-odd) + 5 * 5px + 8px);
    }

    .odds-columns-header .col-team {
        position: sticky;
        left: 0;
        z-index: 75;
        background: #0d0e10;
        padding: 5px 8px;
        display: flex;
        flex-direction: row;
        gap: 4px;
        border-right: 1px solid #2a2b2e;
        box-shadow: 2px 0 8px #0008;
        min-width: var(--col-team);
        max-width: var(--col-team);
        justify-content: center;
    }

    .odds-columns-header .col-team .label-time,
    .odds-columns-header .col-team .label-match { font-size: 11px; }

    .odds-columns-header .col {
        text-align: center !important;
        font-size: 10px;
        padding: 4px 2px;
        min-width: var(--col-odd);
    }

    .league-section {
        position: relative;
        min-width: calc(var(--col-team) + 6 * var(--col-odd) + 5 * 5px + 8px);
    }
    .league-row {
        min-width: calc(var(--col-team) + 6 * var(--col-odd) + 5 * 5px + 16px);
    }
    .league-row .league-cell {
        padding: 8px 10px 8px 14px;
        display: block;
        width: 100%;
        min-width: calc(var(--col-team) + 6 * var(--col-odd) + 5 * 5px + 16px);
        font-size: 12px;
    }

    .meta-date { font-size: 9px; }
    .meta-time { font-size: 12px; }
    .odds-val-row { font-size: 11px; }
    .odds-line-inline { font-size: 9px; margin-right: 3px; }
}

/* ===========================
   Mobile (≤500px)
=========================== */
@media (max-width: 500px) {
    :root {
        --col-team: 150px;
        --col-odd: 72px;
    }

    .team-home.team-giving,
    .team-away.team-receiving,
    .team-away.team-giving,
    .team-home.team-receiving {
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
        max-width: 110px;
    }

    .team-block .time-col {
        border-right: none;
        min-width: 0;
        align-items: center;
        flex-direction: row;
    }

    .grid-cell { font-size: 10px; padding: 1px 3px; min-height: 14px; }
    .grid-cell.line { font-size: 9px; }
    .grid-row { max-width: 65px; }
}

/* ===========================
   1X2 grid
=========================== */
.odds-grid.x12-grid .grid-cell.line {
    font-weight: 700;
    font-size: 11px;
    color: #a8a7a4;
}

/* ===========================
   Custom refresh icon (2026-10-07)
=========================== */
.football-odds-widget button.refresh-btn::before,
.football-odds-widget .refresh-btn.button::before {
    content: "";
    width: 19px;
    height: 19px;
    background-color: #ccc6b8;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m19.6025 12.6348c-.5586-.085-1.0547.2979-1.1348.8438-.2012 1.3711-.834 2.6221-1.8301 3.6182-2.5352 2.5352-6.6572 2.5332-9.1914 0-2.5337-2.5342-2.5337-6.6577 0-9.1914.9531-.9526 2.1563-1.5737 3.5029-1.7998.5791-.1099 1.2017-.1289 1.8477-.0557.887.1021 1.7126.3964 2.466.8285l-1.3019.2223c-.5439.0933-.9102.6099-.8164 1.1543.083.4873.5059.8315.9844.8315.0557 0 .1123-.0044.1699-.0142l3.4902-.5967c.2607-.0449.4941-.1914.6475-.4082.1533-.2163.2139-.4849.1689-.7466l-.5977-3.4897c-.0918-.5439-.6016-.9082-1.1543-.8169-.5439.0933-.9102.6104-.8164 1.1548l.1573.9185c-.9679-.543-2.0356-.8943-3.17-1.0249-.8496-.0967-1.6738-.0698-2.4282.0747-1.7368.291-3.3149 1.105-4.564 2.354-3.3135 3.3135-3.3135 8.7051 0 12.0195 1.6567 1.6572 3.8335 2.4854 6.0098 2.4854 2.1768 0 4.3525-.8281 6.0098-2.4854 1.3018-1.3018 2.1299-2.9414 2.3945-4.7412.0802-.5469-.2978-1.0548-.8437-1.1348z'/%3E%3C/svg%3E") center / contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m19.6025 12.6348c-.5586-.085-1.0547.2979-1.1348.8438-.2012 1.3711-.834 2.6221-1.8301 3.6182-2.5352 2.5352-6.6572 2.5332-9.1914 0-2.5337-2.5342-2.5337-6.6577 0-9.1914.9531-.9526 2.1563-1.5737 3.5029-1.7998.5791-.1099 1.2017-.1289 1.8477-.0557.887.1021 1.7126.3964 2.466.8285l-1.3019.2223c-.5439.0933-.9102.6099-.8164 1.1543.083.4873.5059.8315.9844.8315.0557 0 .1123-.0044.1699-.0142l3.4902-.5967c.2607-.0449.4941-.1914.6475-.4082.1533-.2163.2139-.4849.1689-.7466l-.5977-3.4897c-.0918-.5439-.6016-.9082-1.1543-.8169-.5439.0933-.9102.6104-.8164 1.1548l.1573.9185c-.9679-.543-2.0356-.8943-3.17-1.0249-.8496-.0967-1.6738-.0698-2.4282.0747-1.7368.291-3.3149 1.105-4.564 2.354-3.3135 3.3135-3.3135 8.7051 0 12.0195 1.6567 1.6572 3.8335 2.4854 6.0098 2.4854 2.1768 0 4.3525-.8281 6.0098-2.4854 1.3018-1.3018 2.1299-2.9414 2.3945-4.7412.0802-.5469-.2978-1.0548-.8437-1.1348z'/%3E%3C/svg%3E") center / contain no-repeat;
    transition: background-color 0.2s;
}
.football-odds-widget button.refresh-btn:hover::before,
.football-odds-widget .refresh-btn.button:hover::before,
.football-odds-widget .refresh-btn.loading::before {
    background-color: #d9b66f;
}

/* ===========================
   Collapsible league bars (2026-10-07)
=========================== */
.football-odds-widget .league-row .league-cell { padding: 0; }
.football-odds-widget .league-toggle {
    all: unset;
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    width: 100%;
    padding: 9px 16px;
    cursor: pointer;
    font: inherit;
    color: inherit;
}
.football-odds-widget .league-toggle:focus-visible { outline: 2px solid #f6dfaa; outline-offset: -2px; }
.football-odds-widget .league-name { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.football-odds-widget .league-chevron {
    flex-shrink: 0;
    width: 8px;
    height: 8px;
    margin: 4px 4px 0;
    border-right: 1.5px solid #d9b66f;
    border-bottom: 1.5px solid #d9b66f;
    transform: rotate(-135deg);
    transition: transform 0.2s, margin 0.2s;
}
.football-odds-widget .league-section.is-collapsed .league-chevron { transform: rotate(45deg); margin-top: -4px; }
.football-odds-widget .league-section.is-collapsed .matches-container { display: none; }
.football-odds-widget .league-toggle:hover .league-chevron { border-color: #f6dfaa; }

@media (max-width: 900px) {
    .football-odds-widget .league-row .league-cell { padding: 0; }
    .football-odds-widget .league-toggle {
        position: sticky;
        left: 0;
        width: var(--odds-visible, 100%);
        max-width: 100%;
        padding: 8px 12px 8px 14px;
    }
}
/* Keep the LIVE badge upright on mobile while the time stays vertical (2026-10-07) */
@media (max-width: 900px) {
    .football-odds-widget .time-col .live-badge {
        writing-mode: horizontal-tb;
        margin: 6px 0 0;
        padding: 2px 5px;
        font-size: 9px;
        line-height: 1.4;
        white-space: nowrap;
    }
}

/* Mobile: time column stays upright too (2026-10-07) */
@media (max-width: 900px) {
    .football-odds-widget .team-block .time-col {
        writing-mode: horizontal-tb;
        flex-direction: column;
        align-items: flex-start;
        justify-content: center;
        gap: 3px;
        flex-shrink: 0;
        min-width: 40px;
        padding-right: 6px;
        border-right: 1px solid #2a2b2e;
        text-align: left;
    }
    .football-odds-widget .time-col .live-badge { margin: 2px 0 0; }
    .football-odds-widget .team-block .match-col { min-width: 0; text-align: left; }
}
@media (max-width: 500px) {
    :root { --col-team: 172px; }
}

/* ===========================
   Clickable prices + members popup (2026-10-07)
=========================== */
.football-odds-widget .grid-cell.odds {
    cursor: pointer;
    transition: color 0.15s;
}
.football-odds-widget .grid-cell.odds:hover,
.football-odds-widget .grid-cell.odds:active {
    color: #f6dfaa !important;
}

html.odds-gate-open { overflow: hidden; }
.odds-gate { position: fixed; inset: 0; z-index: 1000; display: grid; place-items: center; padding: 20px; }
.odds-gate[hidden] { display: none; }
.odds-gate-backdrop { position: absolute; inset: 0; background: #050506cc; backdrop-filter: blur(3px); opacity: 0; transition: opacity 0.18s; }
.odds-gate-dialog {
    position: relative; width: min(420px, 100%); padding: 30px 28px 26px; text-align: center;
    border: 1px solid transparent; border-radius: 14px; color: #f3f1ec;
    background:
        radial-gradient(ellipse at 50% 0%, #d9b66f1f, transparent 65%) padding-box,
        linear-gradient(#141517, #101113) padding-box,
        linear-gradient(135deg, #d9b66fb3, #3a3220 45%, #d9b66f80) border-box;
    box-shadow: 0 24px 60px #000c;
    opacity: 0; transform: translateY(10px) scale(0.98); transition: opacity 0.18s, transform 0.18s;
    outline: none;
}
.odds-gate.is-open .odds-gate-backdrop { opacity: 1; }
.odds-gate.is-open .odds-gate-dialog { opacity: 1; transform: none; }
.odds-gate-close {
    position: absolute; top: 8px; right: 8px; width: 40px; height: 40px; border: 0; border-radius: 8px;
    background: transparent; color: #a8a7a4; font-size: 26px; line-height: 1; cursor: pointer;
}
.odds-gate-close:hover { color: #f6dfaa; background: #ffffff0d; }
.odds-gate-eyebrow { margin: 0 0 8px; font-size: 11px; font-weight: 700; letter-spacing: 0.18em; color: #d9b66f; }
.odds-gate-title {
    margin: 0 0 16px; font-size: 22px; line-height: 1.35;
    background: linear-gradient(110deg, #ae7e32 0%, #f8e4b4 35%, #d5ae61 63%, #f3d99c 100%);
    -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; color: #f6dfaa;
}
.odds-gate-pick {
    display: grid; gap: 4px; margin: 0 0 16px; padding: 12px 14px; border-radius: 8px;
    background: #0c0d0f; border: 1px solid #2a2b2e; text-align: left;
}
.odds-gate-pick[hidden] { display: none; }
.odds-gate-match { font-size: 13px; color: #d7d4cc; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.odds-gate-line { display: flex; align-items: baseline; gap: 8px; font-size: 13px; color: #a8a7a4; min-width: 0; }
.odds-gate-market { font-size: 11px; font-weight: 700; color: #d9b66f; flex-shrink: 0; }
.odds-gate-sel { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; }
.odds-gate-price { margin-left: auto; font-size: 17px; color: #f6dfaa; flex-shrink: 0; }
.odds-gate-text { margin: 0 0 20px; font-size: 14px; line-height: 1.75; color: #b8b7b1; }
.odds-gate-actions { display: grid; gap: 10px; }
.odds-gate-actions .button { width: 100%; min-height: 48px; gap: 8px; }
@media (prefers-reduced-motion: reduce) {
    .odds-gate-backdrop, .odds-gate-dialog { transition: none; }
}

/* Mobile: pinned team column always covers the full row height, so scrolled odds never peek out (2026-10-07) */
@media (max-width: 900px) {
    .football-odds-widget .match-card .col.team-block {
        align-self: stretch;
        align-items: center;
    }
}
