/* =========================================================================
   FINAL CROSS-DEVICE RESPONSIVE PASS · V12
   One layout system for desktop, laptop, tablet and phone.
   These are presentation-only overrides.
   ========================================================================= */

/* Universal overflow safety */
html, body {
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
}
*, *::before, *::after {
    box-sizing: border-box;
}
#app,
#game-view,
#game-view > *,
.franchise-shell,
.draft-stage,
.card-presentation,
.unr-shop-shell,
.achievement-cabinet,
.draft-history-shell,
.franchise-history-dashboard-shell {
    width: 100%;
    min-width: 0;
    max-width: 100%;
}
#game-view :is(
    .grid, .flex, article, section, nav, details, form,
    .franchise-panel, .franchise-player-card, .unr-shop-item,
    .achievement-card, .draft-history-row, .franchise-dashboard-run
) > * {
    min-width: 0;
}
#game-view :is(h1,h2,h3,h4,p,strong,span,small,label,button,summary) {
    overflow-wrap: anywhere;
}
img, svg, video, canvas {
    max-width: 100%;
}
button, select, input, textarea {
    max-width: 100%;
}

/* Tables never force the entire page off-screen. */
.franchise-table-wrap,
.franchise-league-table-wrap,
:is(.franchise-shell,.draft-stage) :has(> table) {
    max-width: 100%;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    -webkit-overflow-scrolling: touch;
}
.franchise-league-table {
    width: 100%;
}

/* Desktop/laptop: use the available screen without growing absurdly wide. */
@media (min-width: 901px) {
    #app {
        width: min(96vw, 1400px);
        max-width: 1400px;
        padding-inline: clamp(18px, 2vw, 30px);
    }
    #game-view > :is(.draft-stage,.franchise-shell,.card-presentation,.unr-shop-shell) {
        margin-inline: auto;
    }
}

/* Tablet / narrow laptop */
@media (max-width: 900px) {
    #app {
        width: 100%;
        max-width: 100%;
        padding-inline: 14px;
    }
    .franchise-dashboard,
    .franchise-workspace,
    .analysis-main,
    .tm-panels,
    .tactical-broadcast-grid {
        grid-template-columns: 1fr !important;
    }
    .franchise-matchday-grid,
    .franchise-tactic-grid {
        grid-template-columns: repeat(2,minmax(0,1fr)) !important;
    }
    .franchise-challenge-grid {
        grid-template-columns: 1fr !important;
    }
    .franchise-negotiation {
        grid-template-columns: 1fr !important;
    }
}

/* Phones */
@media (max-width: 650px) {
    body {
        min-width: 0;
    }
    #app {
        padding: 10px;
        gap: 13px;
    }
    #game-view {
        gap: 13px;
    }

    /* Home screen */
    header {
        padding-bottom: 12px;
        gap: 9px;
    }
    header h1 {
        font-size: clamp(24px,8vw,32px) !important;
        line-height: 1.05;
    }
    header p {
        font-size: 12px !important;
    }

    /* Shared panels */
    .franchise-shell,
    .draft-stage,
    .card-presentation,
    .unr-shop-shell {
        padding-inline: 10px !important;
    }
    .franchise-panel {
        padding: 12px !important;
    }
    .franchise-section-title {
        gap: 9px;
        align-items: flex-start !important;
    }
    .franchise-section-title h2 {
        font-size: clamp(24px,8vw,32px) !important;
        line-height: 1.05;
    }

    /* All primary action rows stack safely */
    .franchise-actions,
    .franchise-match-actions,
    .franchise-offer-callout,
    .unr-shop-toolbar {
        width: 100%;
        flex-wrap: wrap !important;
    }
    .franchise-actions > button,
    .franchise-match-actions > button {
        flex: 1 1 140px;
    }

    /* Franchise navigation */
    .franchise-nav,
    .franchise-nav-logical {
        width: 100%;
        grid-template-columns: repeat(2,minmax(0,1fr)) !important;
        gap: 7px !important;
    }
    .franchise-nav button,
    .franchise-nav-logical button {
        min-width: 0 !important;
        width: 100%;
        padding: 9px !important;
    }

    /* Draft */
    .draft-stage > .grid,
    .draft-stage .grid-cols-2,
    .draft-stage .grid-cols-3,
    .draft-stage .grid-cols-4 {
        min-width: 0;
    }
    .draft-stage .draft-spinner-panel {
        min-height: 220px !important;
    }
    .draft-reels {
        gap: 5px !important;
    }
    .draft-reels > div {
        min-width: 0 !important;
        padding-inline: 6px !important;
    }
    .draft-reels [id^="slot-"] {
        font-size: clamp(9px,2.8vw,12px);
    }
    #game-view .draft-pitch {
        width: 100%;
        min-width: 0;
    }

    /* Match centre News */
    .franchise-live-score,
    .analysis-scorebar,
    .franchise-halftime-scorebar {
        grid-template-columns: minmax(0,1fr) auto minmax(0,1fr) !important;
        gap: 6px !important;
        padding-inline: 7px !important;
    }
    .franchise-live-score > div,
    .analysis-scorebar > div,
    .franchise-halftime-scorebar > div {
        min-width: 0;
    }
    .franchise-live-score > div strong,
    .analysis-scorebar > div strong,
    .franchise-halftime-scorebar > div strong {
        font-size: 10px !important;
        text-align: center;
    }
    .franchise-live-score .franchise-team-badge,
    .analysis-scorebar .franchise-team-badge,
    .franchise-halftime-scorebar .franchise-team-badge {
        flex: 0 0 auto;
    }
    .franchise-live-numbers,
    #analysis-score {
        font-size: clamp(24px,8vw,36px) !important;
        white-space: nowrap;
    }
    .franchise-possession > div:first-child {
        display: grid !important;
        grid-template-columns: minmax(0,1fr) auto minmax(0,1fr) !important;
        gap: 6px;
        font-size: 9px;
    }
    .franchise-possession > div:first-child small {
        white-space: nowrap;
        font-size: 8px;
    }

    /* News cards */
    .franchise-match-feed {
        width: 100%;
        height: min(360px,48dvh) !important;
    }
    .franchise-news-v10 article,
    .franchise-match-feed-rich article {
        grid-template-columns: 44px 30px minmax(0,1fr) !important;
        gap: 6px !important;
        padding: 10px 7px !important;
    }
    .franchise-news-v10 article > strong:last-child,
    .franchise-match-feed-rich article > strong:last-child {
        grid-column: 3;
        justify-self: start;
        font-size: 10px;
    }
    .franchise-live-news-title {
        flex-wrap: wrap;
    }

    /* Tactical / stats */
    .analysis-main {
        grid-template-columns: 1fr !important;
    }
    .analysis-team-head,
    .match-analysis-row,
    .match-analysis-meter {
        grid-template-columns: 62px minmax(0,1fr) 62px !important;
        gap: 6px !important;
    }
    .analysis-team-head strong,
    .match-analysis-row strong,
    .match-analysis-meter strong {
        font-size: 10px !important;
    }
    .analysis-table {
        padding-inline: 9px !important;
    }
    .analysis-read {
        align-items: flex-start !important;
    }

    /* Half time */
    .franchise-halftime-v11 .franchise-halftime-summary,
    .franchise-halftime-lineup-grid {
        grid-template-columns: 1fr !important;
    }
    .franchise-halftime-player {
        grid-template-columns: 38px minmax(0,1fr) !important;
    }
    .franchise-halftime-sub-options,
    .franchise-halftime-no-sub {
        grid-column: 2;
        justify-self: stretch;
    }
    .franchise-halftime-actions .franchise-primary {
        width: 100%;
        min-width: 0 !important;
    }

    /* Squad / training / scouting / trade / challenges */
    .franchise-matchday-grid,
    .franchise-tactic-grid,
    .franchise-trade-grid,
    .franchise-options,
    .franchise-challenge-grid,
    .franchise-metrics,
    .franchise-feats {
        grid-template-columns: 1fr !important;
    }
    .franchise-player-card,
    .franchise-matchday-slot {
        width: 100%;
        min-width: 0;
    }

    /* Shop / achievements / history */
    .unr-shop-grid {
        grid-template-columns: repeat(2,minmax(0,1fr)) !important;
        gap: 8px !important;
    }
    .unr-shop-wallet {
        min-width: 0 !important;
        width: 100%;
    }
    .achievement-grid,
    .achievement-cabinet-grid {
        grid-template-columns: 1fr !important;
    }
    .draft-history-heading {
        align-items: flex-start !important;
        flex-direction: column;
    }
    .franchise-dashboard-run,
    .draft-history-row {
        max-width: 100%;
    }

    dialog {
        width: calc(100vw - 18px) !important;
        max-width: calc(100vw - 18px) !important;
        max-height: calc(100dvh - 18px) !important;
        margin: auto;
    }
}

/* Small phones, including ~320px-wide devices */
@media (max-width: 390px) {
    #app {
        padding: 7px;
    }
    .unr-shop-grid {
        grid-template-columns: 1fr !important;
    }
    .franchise-nav,
    .franchise-nav-logical {
        grid-template-columns: 1fr !important;
    }
    .analysis-team-head,
    .match-analysis-row,
    .match-analysis-meter {
        grid-template-columns: 52px minmax(0,1fr) 52px !important;
    }
    .analysis-team-head > span,
    .match-analysis-row > span,
    .match-analysis-meter span {
        font-size: 7px !important;
        letter-spacing: .06em !important;
    }
    .franchise-live-score > div {
        flex-direction: column;
        gap: 4px;
    }
    .franchise-view-controls {
        display: grid !important;
        grid-template-columns: 1fr !important;
    }
    .franchise-view-controls .franchise-match-speed {
        width: 100%;
    }
    .franchise-view-controls .franchise-match-speed button {
        flex: 1;
    }
}

/* Landscape phones: avoid tall screens eating the whole viewport. */
@media (max-height: 500px) and (orientation: landscape) {
    #app {
        padding-block: 6px;
    }
    header {
        display: none;
    }
    .franchise-match-feed {
        height: 230px !important;
    }
    .franchise-section-title {
        margin-bottom: 5px !important;
    }
}
/* Five-season Franchise profiles, league hub and mobile Tour polish. */
.franchise-profile-stats { display:grid; grid-template-columns:repeat(auto-fit,minmax(125px,1fr)); gap:10px; margin:16px 0 28px; }
.franchise-profile-stats > div { background:#101c33; border:1px solid #263b61; border-radius:12px; padding:14px; min-width:0; }
.franchise-profile-stats dt { color:#a7b9d6; font-size:12px; text-transform:capitalize; overflow-wrap:anywhere; }
.franchise-profile-stats dd { color:#e3f4ff; font-size:24px; font-weight:800; margin:5px 0 0; }
.franchise-profile-open { width:100%; min-height:44px; margin:8px 0; }
.franchise-leaders-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.franchise-leaders { margin:24px 0; }
.franchise-leaders ol { padding:0; list-style-position:inside; counter-reset:leader; }
.franchise-leaders li { display:flex; gap:14px; align-items:center; padding:12px 0; border-bottom:1px solid #253854; counter-increment:leader; }
.franchise-leaders li:before { content:counter(leader); color:#8caae0; }
.franchise-leaders li div { flex:1; min-width:0; overflow-wrap:anywhere; }
.franchise-leaders small { display:block; color:#a7b9d6; }
.franchise-leaders b { font-size:25px; color:#67e8f9; }
.franchise-form-three { display:flex; gap:4px; }
.franchise-form-three span { display:inline-grid; place-items:center; min-width:25px; height:28px; border-radius:6px; font-weight:800; }
.franchise-form-three [data-result="W"] { background:#166534; color:#dcfce7; }
.franchise-form-three [data-result="L"] { background:#991b1b; color:#fee2e2; }
.franchise-form-three [data-result="D"] { background:#9a3412; color:#ffedd5; }
.franchise-league-scroll { max-width:100%; overflow-x:auto; }
.franchise-league-table th[scope="row"] { min-width:170px; max-width:240px; white-space:normal; overflow-wrap:anywhere; text-align:left; }
.franchise-awards-night .franchise-award-card,.franchise-champion { border-color:#887041; background:linear-gradient(145deg,#19233b,#111827); }
.franchise-awards-night .franchise-kicker,.franchise-champion .franchise-kicker { color:#f5d785; }
.franchise-profile,.franchise-leaders,.franchise-awards-grid { min-width:0; overflow-wrap:anywhere; }
@media(max-width:600px) {
 .franchise-leaders-grid { grid-template-columns:minmax(0,1fr); }
 .draft-tour-results { padding:16px!important; overflow:visible!important; }
 .draft-tour-results > .flex.justify-center { gap:8px!important; }
 .draft-tour-results > .flex.justify-center > div { min-width:0!important; flex:1; padding:12px 4px!important; }
 .draft-tour-results #match-list { padding-right:0; max-height:480px; }
 .draft-tour-results #match-list > div { flex-direction:column; align-items:stretch; gap:12px; padding:12px; }
 .draft-tour-results #match-list > div > div { min-width:0; }
 .draft-tour-results #match-list > div > div:first-child .flex { flex-wrap:wrap; }
 .draft-tour-results #match-list > div > div:last-child { justify-content:space-between; }
 .draft-tour-results span { white-space:normal; overflow-wrap:anywhere; }
 .draft-tour-results #post-season-stats > .grid { grid-template-columns:minmax(0,1fr); }
 .draft-tour-results #post-season-stats .grid > div { min-width:0; }
 .draft-history-dashboard,.draft-history-heading { min-width:0; overflow-wrap:anywhere; }
}
@media(prefers-reduced-motion:reduce) { .franchise-awards-night * { animation:none!important; transition:none!important; } }
.franchise-league-table { min-width:680px; font-size:13px; }
.franchise-league-table th,.franchise-league-table td { display:table-cell!important; padding:12px 9px; }
.franchise-league-table th[scope="row"] { font-size:13px; color:#dbeafe; position:sticky; left:36px; background:#111c32; z-index:1; }
.franchise-league-table td:first-child { position:sticky; left:0; min-width:36px; background:#111c32; z-index:2; }
.franchise-league-table small { font-size:11px; }
@media(max-width:600px) {
 .draft-run-dialog { padding:14px!important; overflow-wrap:anywhere; }
 .draft-run-dialog > .space-y-3 > .flex { flex-direction:column; align-items:stretch; }
 .draft-run-dialog > .space-y-3 > .flex > div:last-child { font-size:22px; }
 .draft-run-dialog .card-presentation { padding:8px!important; }
 .draft-run-dialog .card-presentation .grid { gap:6px!important; }
 .draft-run-dialog .card-presentation .grid > div { padding:7px 3px!important; }
}
.draft-run-dialog > .flex > form { flex-shrink:0; }
.draft-run-dialog > .flex > div { min-width:0; }
.draft-run-dialog form button { min-width:62px; min-height:44px; white-space:nowrap; }
/* Final consistency pass: dense data gets deliberate scrolling, cards keep readable type. */
.franchise-league-table { min-width:760px; border-spacing:0; font-variant-numeric:tabular-nums; }
.franchise-league-table th,.franchise-league-table td { height:66px; vertical-align:middle; padding:13px 12px; }
.franchise-league-table thead th { height:46px; font-size:11px; letter-spacing:.07em; background:#18243b; color:#b7c8e8; }
.franchise-league-table th[scope="row"] { min-width:200px; max-width:260px; font-weight:700; }
.franchise-league-table tbody td { text-align:center; }
.franchise-league-table thead th { text-align:center; }
.franchise-league-table thead th:nth-child(2) { text-align:left; }
.franchise-league-table td:first-child { width:48px; min-width:48px; }
.franchise-league-table th[scope="row"] { left:48px; }
.franchise-league-table .franchise-team-badge { width:28px; height:31px; vertical-align:middle; flex-shrink:0; }
.franchise-league-table .franchise-user-row td,.franchise-league-table .franchise-user-row th[scope="row"] { background:#202f54; color:#e0eaff; }
.franchise-league-table .franchise-table-points { font-size:17px; font-weight:850; color:#8ce4f5; }
.franchise-your-club { display:block; color:#80dcec; font-size:10px; letter-spacing:.06em; margin-top:4px; }
.franchise-form-three { display:grid; grid-template-columns:repeat(3,28px); gap:5px; align-items:center; justify-content:center; width:94px; margin:auto; }
.franchise-form-three span { box-sizing:border-box; width:28px; min-width:28px; height:28px; padding:0; line-height:1; font:800 12px/1 system-ui,sans-serif; border:1px solid #ffffff16; }
.franchise-form-three [data-result="empty"] { background:#1b2941; color:#7283a2; }
.franchise-leaders li:before { content:none; }
.franchise-leaders .franchise-leader-rank { display:grid; place-items:center; width:28px; height:28px; flex-shrink:0; border-radius:8px; background:#243554; color:#b5c9ed; font-weight:800; }
.franchise-leaders .franchise-leader-total { flex:0 0 52px; text-align:right; }
.franchise-leaders .franchise-leader-total small { font-size:10px; text-transform:uppercase; }
.franchise-leaders li { min-height:85px; gap:10px; }
.franchise-leaders li strong { font-size:15px; }
.franchise-leaders li small { font-size:12px; line-height:1.5; }
.franchise-awards-night .franchise-positional-awards { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; }
.franchise-shell .franchise-award-card { padding:20px; min-width:0; }
.franchise-award-badge { display:inline-block; font-size:12px; color:#f2dba2; font-weight:800; letter-spacing:.07em; margin-bottom:22px; }
.franchise-award-identity { display:flex; justify-content:space-between; align-items:center; gap:12px; }
.franchise-award-identity > div { min-width:0; }
.franchise-award-identity h3 { font-size:20px; margin:0 0 8px; }
.franchise-award-identity p { font-size:13px; color:#b4c3de; overflow-wrap:anywhere; }
.franchise-award-ovr { display:flex; flex-direction:column; font-size:26px; color:#f2dc9c; font-weight:850; flex-shrink:0; }
.franchise-award-ovr small { font-size:10px; letter-spacing:.08em; }
.franchise-award-statline { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); border-top:1px solid #9680523d; margin-top:20px; padding-top:16px; gap:6px; }
.franchise-award-statline span { display:flex; flex-direction:column; gap:4px; }
.franchise-award-statline strong { font-size:19px; }
.franchise-award-statline small { font-size:10px; color:#b5c2d7; }
.franchise-poty-finale { margin:34px 0 22px; }
.franchise-poty-finale > .franchise-kicker { display:block; text-align:center; margin-bottom:14px; }
.franchise-shell .franchise-poty-card { padding:30px; border:1px solid #bf985e; background:radial-gradient(ellipse at top right,#b189351f,transparent 65%),linear-gradient(145deg,#1e2943,#101a2d); box-shadow:0 0 35px #bf985e0d; }
.franchise-poty-card h2 { font-size:clamp(26px,3vw,42px); }
.franchise-poty-card .franchise-award-ovr { font-size:40px; }
.franchise-poty-card .franchise-award-statline { max-width:580px; }
.franchise-award-summary { display:flex; flex-wrap:wrap; gap:12px 24px; color:#cad5e9; margin-top:18px; }
.franchise-allstar-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; margin:20px 0; }
.franchise-allstar-grid article { min-width:0; }
.franchise-allstar-grid h3 { font-size:20px; margin:16px 0 8px; overflow-wrap:anywhere; }
.franchise-allstar-grid p { color:#aec3e5; font-size:13px; }
.franchise-special-fixture { text-align:center; margin-top:22px; }
.franchise-special-fixture h2 small { font-size:16px; color:#899ab9; }
.franchise-special-fixture .franchise-actions { justify-content:center; }
.franchise-special-score { display:block; font-size:38px; margin:18px 0; color:#c4e9ff; }
.franchise-scout-brief { display:flex; justify-content:space-between; align-items:center; gap:24px; }
.franchise-scout-brief > div { max-width:760px; min-width:0; }
.franchise-scout-brief p { color:#bdcbe0; font-size:14px; line-height:1.65; margin:10px 0; }
.franchise-scout-brief button { flex-shrink:0; }
.franchise-refresh-count { border:1px solid #376083; background:#142b40; padding:10px 14px; border-radius:12px; color:#b0e5ff!important; white-space:normal; }
.franchise-scout-targets { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin-top:20px; }
.franchise-scout-target { display:flex; flex-direction:column; gap:12px; min-width:0; }
.franchise-scout-target > button { margin-top:auto; min-height:44px; }
.franchise-target-status { color:#80dcec; font-size:11px; letter-spacing:.07em; font-weight:800; }
.franchise-target-meta { display:grid; gap:8px; font-size:12px; color:#a8bad6; }
.franchise-target-meta strong { display:block; margin-top:4px; color:#e0e9f8; font-size:14px; }
.franchise-scout-empty { grid-column:1/-1; }
.franchise-negotiation-grid { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:20px; }
.franchise-market-info { margin-top:24px; display:grid; gap:14px; }
.franchise-market-info > div { display:flex; justify-content:space-between; flex-wrap:wrap; gap:6px 12px; border-top:1px solid #293953; padding-top:12px; }
.franchise-market-info dt { font-size:13px; color:#adbedb; }
.franchise-market-info dd { margin:0; font-weight:800; }
.franchise-offer-amount { display:block; font-size:32px; color:#b9dcff; margin:18px 0; }
.franchise-offer-options { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; margin:20px 0; }
.franchise-offer-options button { min-width:0; padding:14px 8px; }
.franchise-offer-options small { display:block; margin-top:6px; font-size:12px; color:#b2c6e9; }
.franchise-offer-options [aria-pressed="true"] { background:#283976; border-color:#8b9fff; box-shadow:0 0 0 1px #849afa; }
.franchise-agent-feedback { border:1px solid #3c567e; border-radius:12px; padding:18px; background:#17243b; margin:16px 0; overflow-wrap:anywhere; }
.franchise-agent-feedback p { margin:8px 0 0; line-height:1.6; font-size:14px; color:#c0cfe5; }
.franchise-agent-feedback.is-countered { border-color:#9a7738; }
.franchise-agent-feedback.is-rejected { border-color:#b65865; }
.franchise-agent-feedback.is-accepted { border-color:#3e8f78; }
.franchise-shell :is(.franchise-player-identity,.franchise-panel,.franchise-section-title > div) { min-width:0; }
.franchise-shell :is(h2,h3,p,strong,small) { overflow-wrap:anywhere; }
.franchise-shell button { min-height:44px; }
@media(max-width:1100px) {
 .franchise-awards-night .franchise-positional-awards,.franchise-allstar-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .franchise-scout-targets { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:700px) {
 .franchise-scout-brief { flex-direction:column; align-items:stretch; gap:12px; }
 .franchise-negotiation-grid { grid-template-columns:minmax(0,1fr); }
 .franchise-scout-targets { grid-template-columns:minmax(0,1fr); }
 .franchise-shell .franchise-poty-card { padding:20px; }
 .franchise-awards-night .franchise-positional-awards { grid-template-columns:minmax(0,1fr); }
 .franchise-allstar-grid { gap:10px; }
 .franchise-allstar-grid .franchise-panel { padding:14px; }
 .franchise-allstar-grid h3 { font-size:18px; }
 .franchise-offer-options { grid-template-columns:minmax(0,1fr); }
 .franchise-offer-options button { display:flex; justify-content:space-between; align-items:center; gap:10px; }
 .franchise-offer-options small { margin:0; }
 .franchise-leaders-grid { grid-template-columns:minmax(0,1fr); }
 .franchise-league-table th[scope="row"] { min-width:155px; max-width:190px; }
 .franchise-section-title { flex-wrap:wrap; }
}
@media(prefers-reduced-motion:reduce) { .franchise-awards-night *, .franchise-allstars * { animation:none!important; transition:none!important; } }

/* Franchise gameplay stability patch */
.franchise-danger{border-color:#8d3d4d!important;color:#ffd8df!important;background:#351b27!important}
.franchise-danger:hover{background:#562333!important}
.franchise-rest{display:block;width:100%;margin:18px 0;border-color:#3c806f!important;background:linear-gradient(135deg,#153b35,#17304a)!important;color:#d8fff3!important}
.franchise-skip-season{border-color:#8b7540!important;color:#ffe7a8!important}

/* Franchise hotfix: transfer offers + representative presentation */
.franchise-offers-v2 .franchise-section-title{align-items:flex-start}.franchise-offer-v2{padding:18px;margin-top:14px}.franchise-offer-v2>header{display:flex;justify-content:space-between;align-items:center;gap:12px;padding-bottom:14px;border-bottom:1px solid #2b3852}.franchise-offer-v2>header>div{display:flex;align-items:center;gap:10px}.franchise-offer-v2 h3{margin:2px 0 0;font-size:19px}.franchise-offer-round{font-size:10px;letter-spacing:.1em;color:#93a4c3}.franchise-offer-swap{display:grid;grid-template-columns:minmax(0,1fr) 44px minmax(0,1fr);gap:12px;align-items:center;margin:16px 0}.franchise-offer-swap>section>span{display:block;margin-bottom:8px;font-size:9px;font-weight:800;letter-spacing:.12em;color:#8fa1c1}.franchise-offer-arrow{display:grid;place-items:center;width:38px;height:38px;border:1px solid #44577c;border-radius:50%;color:#9db8ff;background:#111d34;font-size:18px}.franchise-offer-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:14px 0}.franchise-offer-summary>div{padding:12px;border:1px solid #2c3a56;border-radius:10px;background:#101a2e}.franchise-offer-summary span{display:block;font-size:9px;letter-spacing:.08em;color:#7f91b1}.franchise-offer-summary strong{display:block;margin-top:4px;font-size:17px}.franchise-offer-summary .is-positive{color:#7ee7b7}.franchise-offer-summary .is-negative{color:#ff9aaa}.franchise-offers-empty{text-align:center;padding:34px 20px}.franchise-special-fixture{border:1px solid #344665;background:linear-gradient(145deg,#16243d,#0e1728);box-shadow:0 18px 45px -35px #7c8cff}.franchise-special-fixture h2{font-size:30px}.franchise-special-score{display:block;font-size:32px;margin:16px 0;color:#eef4ff}
@media(max-width:720px){.franchise-offer-swap{grid-template-columns:1fr}.franchise-offer-arrow{transform:rotate(90deg);margin:auto}.franchise-offer-summary{grid-template-columns:1fr}}

/* FINAL FRANCHISE AI PATCH · opposition report */
.franchise-opponent-preview{margin:18px 0 24px;padding:18px;border:1px solid rgba(96,165,250,.22);border-radius:18px;background:linear-gradient(145deg,rgba(30,41,59,.96),rgba(10,20,38,.96));box-shadow:0 18px 42px -30px rgba(59,130,246,.55),inset 0 1px 0 rgba(255,255,255,.04)}
.franchise-opponent-hero{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}.franchise-opponent-hero>div{display:flex;align-items:center;gap:14px}.franchise-opponent-hero h3{font-size:1.28rem;margin:2px 0}.franchise-opponent-hero p,.franchise-opponent-hero small{color:#94a3b8}.franchise-opponent-tag{font-size:.7rem;font-weight:900;letter-spacing:.12em;color:#7dd3fc;border:1px solid rgba(125,211,252,.22);background:rgba(14,116,144,.12);padding:8px 10px;border-radius:999px;white-space:nowrap}
.franchise-opponent-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.franchise-opponent-player{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;min-height:70px;padding:12px 13px;border:1px solid rgba(148,163,184,.15);border-radius:13px;background:linear-gradient(140deg,rgba(30,41,59,.86),rgba(15,23,42,.82));box-shadow:inset 0 1px 0 rgba(255,255,255,.025)}.franchise-opponent-player strong{display:block;color:#f8fafc}.franchise-opponent-player small{display:block;font-size:.64rem;color:#8291aa;margin-top:2px}.franchise-opponent-player>b{font-size:1.32rem;color:#93c5fd;text-align:right;line-height:.9}.franchise-opponent-player>b small{font-size:.48rem;letter-spacing:.08em}.franchise-opponent-pos{min-width:34px;height:34px;border-radius:9px;display:grid;place-items:center;background:rgba(59,130,246,.12);border:1px solid rgba(96,165,250,.22);color:#7dd3fc;font-size:.68rem;font-weight:900}.franchise-opponent-bench{margin-top:12px;padding-top:12px;border-top:1px solid rgba(148,163,184,.12);display:flex;align-items:center;gap:10px;flex-wrap:wrap}.franchise-opponent-bench>span{font-size:.62rem;font-weight:900;letter-spacing:.12em;color:#64748b;margin-right:4px}.franchise-opponent-bench>b{font-size:.72rem;color:#cbd5e1;padding:7px 9px;border-radius:9px;background:rgba(15,23,42,.7);border:1px solid rgba(148,163,184,.12)}.franchise-opponent-bench>b small{color:#718096;font-weight:700}
@media(max-width:900px){.franchise-opponent-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.franchise-opponent-preview{padding:13px}.franchise-opponent-hero{align-items:flex-start}.franchise-opponent-tag{display:none}.franchise-opponent-grid{grid-template-columns:1fr}.franchise-opponent-player{min-height:62px}.franchise-opponent-bench{align-items:stretch;flex-direction:column}.franchise-opponent-bench>b{width:100%}}

/* ========================================================================
   FINAL FRANCHISE VISUAL POLISH · club operations / release candidate
   Scoped to Franchise; card materials, game state and other modes are owned
   by their existing systems. Important declarations neutralize old global
   presentation rules without changing those rules for Draft or the shop.
   ======================================================================== */
.franchise-shell {
    --fr-bg:#0b1220; --fr-surface:#101b2c; --fr-surface-raised:#17243a;
    --fr-border:#2a3a50; --fr-text:#edf2fa; --fr-muted:#a5b5ca;
    --fr-accent:#719ff1; --fr-danger:#f0a5ae; --fr-success:#8ed2b4;
    --fr-gold:#dbc18c; --fr-radius:6px; --fr-space:16px;
    background:var(--fr-bg); color:var(--fr-text); padding:24px;
    border:1px solid var(--fr-border); border-radius:8px; box-shadow:none;
    font-size:14px; line-height:1.5; isolation:isolate;
    animation:fr-release-enter 160ms ease-out;
}
.franchise-shell::before { display:none; }
@keyframes fr-release-enter { from { opacity:.65; } to { opacity:1; } }
/* The site masthead becomes compact chrome only while Franchise is open. */
#app:has(.franchise-shell)>header { display:flex; flex-direction:row; justify-content:space-between; padding:8px 0 12px; gap:12px; margin:0; }
#app:has(.franchise-shell)>header>div:first-child { width:36px; height:36px; flex:0 0 36px; border:0; padding:0; box-shadow:none; }
#app:has(.franchise-shell)>header>div:last-child { flex:1; text-align:left; }
#app:has(.franchise-shell)>header h1 { font-size:16px!important; letter-spacing:.1em!important; filter:none; }
#app:has(.franchise-shell)>header p { font-size:11px; margin:0; }
.franchise-shell :is(h2,h3,p) { text-shadow:none; }
.franchise-shell h2 { font-size:clamp(24px,2.7vw,34px); line-height:1.15; letter-spacing:-.025em; }
.franchise-shell h3 { font-size:17px; line-height:1.35; font-weight:750; }
.franchise-shell p { line-height:1.6; }
.franchise-shell :is(.franchise-muted,.franchise-cap-footer span) { color:var(--fr-muted); }
.franchise-shell .franchise-kicker { color:var(--fr-accent)!important; letter-spacing:.09em!important; font-size:11px; line-height:1.5; }
.franchise-shell .franchise-section-title { margin:24px 0 16px; gap:12px; }
.franchise-shell .franchise-section-title :is(h2,h3) { margin:0; }
.franchise-shell .franchise-section-title>span { font-size:11px; color:var(--fr-muted); }
.franchise-shell :is(.franchise-panel,.franchise-season-status,.franchise-cap,.franchise-live-score,.analysis-scorebar,.analysis-control,.analysis-coach,.analysis-table,.analysis-moments-card,.franchise-match-feed,.franchise-news) {
    border-color:var(--fr-border)!important; border-radius:var(--fr-radius); box-shadow:none; backdrop-filter:none;
}
.franchise-shell .franchise-panel { padding:16px; background:var(--fr-surface); }
.franchise-shell .franchise-season-status { padding:24px; background:linear-gradient(110deg,#172944,var(--fr-surface) 70%); border-top:2px solid var(--fr-accent); }
.franchise-shell :is(.franchise-summary,.franchise-roster-summary,.franchise-legacy-stats) { background:var(--fr-surface); border:1px solid var(--fr-border); border-radius:4px; gap:0; }
.franchise-shell .franchise-stat { padding:12px 16px; border:0; border-right:1px solid var(--fr-border); border-radius:0; background:none; }
.franchise-shell .franchise-stat>strong { margin-top:4px; font-size:24px; }
.franchise-shell :is(.franchise-stat>span,.franchise-stat small) { font-size:11px; letter-spacing:.03em; color:var(--fr-muted); }
/* Consistent controls. Card art and cosmetic overlays are intentionally untouched. */
.franchise-shell button { min-height:44px; padding:10px 16px; border:1px solid #3a4d68; border-radius:4px; background:var(--fr-surface-raised); color:var(--fr-text); font-size:12px; font-weight:700; line-height:1.4; letter-spacing:.02em; box-shadow:none; transition:background-color 160ms,border-color 160ms,transform 160ms!important; }
.franchise-shell button:hover:not(:disabled) { background:#213552; border-color:#7398c6; filter:none; transform:translateY(-1px); }
.franchise-shell button:active:not(:disabled) { transform:translateY(0); }
.franchise-shell button:disabled { opacity:.45; cursor:not-allowed; box-shadow:none; }
.franchise-shell .franchise-primary { background:#315db0!important; border-color:#6590df!important; box-shadow:none!important; }
.franchise-shell .franchise-primary:hover:not(:disabled) { background:#3e6bc0!important; box-shadow:none!important; }
.franchise-shell .franchise-danger { background:transparent!important; border-color:#624450!important; color:var(--fr-danger)!important; }
.franchise-shell .franchise-danger:hover:not(:disabled) { background:#34212d!important; border-color:#b37380!important; }
.franchise-shell .franchise-skip-season { background:transparent; color:var(--fr-gold)!important; border-color:#655a43!important; font-size:11px; }
.franchise-shell :is(button,summary,a,[tabindex]):focus-visible { outline:2px solid #94c9ff!important; outline-offset:3px; }
.franchise-shell summary { min-height:44px; padding:12px; cursor:pointer; color:var(--fr-text); }
.franchise-shell :is(button[aria-pressed="true"],button.is-selected,button.franchise-selected) { background:#203e67!important; border-color:#86b1ec!important; box-shadow:inset 3px 0 #8cb9f5!important; }
/* Persistent club header and nine-tab navigation. */
.franchise-shell .franchise-header { display:flex; gap:12px; align-items:center; padding:0 0 16px; margin:0; border-bottom:1px solid var(--fr-border); text-align:left; }
.franchise-shell header::after { display:none; }
.franchise-shell .franchise-header .franchise-brand { font-size:19px; line-height:1.2; padding-right:12px; }
.franchise-shell .franchise-header-name { flex:1 1 180px; }
.franchise-shell .franchise-header-name>strong { font-size:17px; }
.franchise-shell .franchise-header-name>span { margin-top:2px; font-size:12px; color:var(--fr-muted); }
.franchise-shell .franchise-header-metrics { display:grid; grid-template-columns:repeat(4,minmax(70px,1fr)); gap:0; }
.franchise-shell .franchise-header-metrics>span { padding:4px 12px; border:0; border-left:1px solid var(--fr-border); border-radius:0; background:none; font-size:10px; color:var(--fr-muted); }
.franchise-shell .franchise-header-metrics strong { font-size:19px; margin-top:4px; }
.franchise-shell .franchise-header-metrics small { font-size:10px; }
.franchise-shell .franchise-nav { display:flex!important; flex-wrap:nowrap; width:100%; gap:0!important; margin:0 0 24px; padding:0; overflow-x:auto; overscroll-behavior-inline:contain; border-bottom:1px solid var(--fr-border); scrollbar-width:thin; scrollbar-color:#456087 var(--fr-bg); }
.franchise-shell .franchise-nav button { flex:1 0 100px; width:auto; min-width:100px!important; padding:12px 9px!important; border:0; border-bottom:2px solid transparent; border-radius:0; background:none; box-shadow:none; font-size:11px; text-align:left; }
.franchise-shell .franchise-nav button:hover:not(:disabled) { transform:none; background:#17263e; }
.franchise-shell .franchise-nav button[aria-current="page"] { background:#162740; color:#b9d6ff; border-bottom-color:#7eacfa; box-shadow:none; }
.franchise-shell .franchise-nav button::after { display:none; }
.franchise-shell .franchise-nav-icon { font-size:14px; margin-right:5px; color:#8daed9; }
.franchise-shell .franchise-nav small { margin-top:5px; font-size:10px; color:var(--fr-muted); line-height:1.4; }
/* Home: one progression area, compact operations strip and editorial bulletin. */
.franchise-home-command { background:linear-gradient(110deg,#1b3050,var(--fr-surface) 75%); border-left:3px solid #719ff1; padding:24px; }
.franchise-home-hero { display:flex; justify-content:space-between; align-items:center; gap:24px; }
.franchise-home-hero h2 { font-size:clamp(30px,4vw,44px); margin:6px 0 8px; }
.franchise-home-hero p { margin:0; color:var(--fr-muted); }
.franchise-home-position { flex:0 0 auto; padding-left:24px; border-left:1px solid var(--fr-border); text-align:right; }
.franchise-home-position span { font-size:10px; color:var(--fr-muted); }
.franchise-home-position strong { display:block; font-size:44px; font-weight:850; line-height:1.25; }
.franchise-home-position small { font-size:12px; color:var(--fr-muted); }
.franchise-home-progress-actions { display:flex; align-items:center; flex-wrap:wrap; gap:12px; margin-top:24px; }
.franchise-home-progress-actions .franchise-home-main-action { min-width:240px; min-height:48px; padding-inline:24px; }
.franchise-home-metrics { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:0; margin:16px 0 24px; border-block:1px solid var(--fr-border); }
.franchise-shell .franchise-home-metrics article { margin:0; border:0; border-right:1px solid var(--fr-border)!important; border-radius:0; padding:14px 20px; background:none; }
.franchise-home-metrics span { display:block; color:var(--fr-muted); font-size:10px; letter-spacing:.06em; }
.franchise-home-metrics strong { display:block; font-size:25px; font-variant-numeric:tabular-nums; margin:3px 0; }
.franchise-home-metrics small { font-size:11px; color:var(--fr-muted); }
.franchise-home-grid { display:grid; grid-template-columns:1fr 1fr; gap:0; border-block:1px solid var(--fr-border); }
.franchise-shell :is(.franchise-home-next,.franchise-home-recent) { margin:0; padding:20px; border:0; border-radius:0; background:none; }
.franchise-shell .franchise-home-recent { border-left:1px solid var(--fr-border); }
.franchise-home-grid h3 { margin:4px 0 12px; color:var(--fr-muted); font-size:13px; font-weight:500; }
.franchise-home-opponent { display:flex; align-items:center; gap:16px; margin:12px 0; }
.franchise-home-opponent strong { display:block; font-size:23px; line-height:1.3; }
.franchise-home-opponent small { color:var(--fr-muted); font-size:12px; }
.franchise-home-score { display:flex; align-items:center; gap:9px; margin-top:4px; font-size:29px; font-weight:800; font-variant-numeric:tabular-nums; }
.franchise-home-score b { display:grid; place-items:center; font-size:12px; width:25px; height:25px; border:1px solid #50627b; border-radius:3px; color:var(--fr-text); }
.franchise-home-score[data-result="W"] b { color:#a6e5c8; border-color:#397760; background:#13372b; }
.franchise-home-score[data-result="L"] b { color:#ffb7bd; border-color:#895461; background:#3b222b; }
.franchise-season-totals { display:block; padding-top:12px; margin-top:12px; border-top:1px solid var(--fr-border); color:var(--fr-muted); font-size:11px; }
.franchise-home-news { margin:24px 0; }
.franchise-home-news-feed { border-top:1px solid var(--fr-border); }
.franchise-home-news-feed article { display:grid; grid-template-columns:110px minmax(0,1fr) 140px; gap:16px; padding:16px 0; border-bottom:1px solid var(--fr-border); align-items:baseline; }
.franchise-home-news-feed .franchise-news-category { color:#9fbde5; font-size:10px; letter-spacing:.08em; font-weight:700; }
.franchise-home-news-feed p { margin:0; font-size:14px; }
.franchise-home-news-feed article:first-child p { font-size:16px; font-weight:650; }
.franchise-home-news-feed small { color:var(--fr-muted); font-size:11px; text-align:right; }
/* Salary and supporting data remain visible as a quiet management strip. */
.franchise-shell .franchise-cap { padding:12px 16px; margin:16px 0; background:var(--fr-surface); }
.franchise-shell .franchise-cap-heading strong { font-size:16px; }
.franchise-shell .franchise-cap-track { height:5px; border-radius:2px; margin:8px 0; box-shadow:none; }
.franchise-shell .franchise-cap-fill { background:var(--cap-color); }
.franchise-shell .franchise-cap-footer { line-height:1.5; }
/* Squad / transfers / scouting: keep card materials, reduce wrapper noise. */
.franchise-shell .franchise-matchday-grid { gap:12px; }
.franchise-shell :is(.franchise-matchday-grid,.franchise-trade-grid,.franchise-scout-targets)>.franchise-panel { margin:0; }
.franchise-shell .franchise-matchday-slot { position:relative; border-top:2px solid #587da9; }
.franchise-shell .franchise-position { display:inline-block; min-width:34px; padding:4px 8px; margin-bottom:10px; border:1px solid #3d5779; border-radius:3px; background:#192c44; color:#bbd7ff; font-size:12px; }
.franchise-shell .franchise-player-top { gap:10px; }
.franchise-shell .franchise-player-identity strong { font-size:17px; }
.franchise-shell .franchise-player-identity span { font-size:12px; }
.franchise-shell .franchise-player-origin { font-size:11px; line-height:1.5; }
.franchise-shell .franchise-fitness { margin-top:10px; }
.franchise-shell .franchise-fitness-track { height:4px; }
.franchise-shell .franchise-xp { margin-top:8px; font-size:11px; }
.franchise-shell .franchise-xp-label { gap:6px; flex-wrap:wrap; }
.franchise-shell .franchise-profile-open { border-color:transparent; background:transparent; text-align:left; color:#a8c9fc; padding:8px 0; margin:4px 0; }
.franchise-shell .franchise-mini-actions { gap:8px; }
.franchise-shell .franchise-mini-actions button { padding:9px 10px; font-size:11px; }
.franchise-shell .franchise-cap-warning { color:#ffbdc2; background:#36212c; border-left:3px solid #c9818c; padding:8px 10px; font-size:12px; }
.franchise-shell .franchise-trade-grid { gap:12px; grid-template-columns:repeat(3,minmax(0,1fr)); }
.franchise-shell .franchise-trade-delta { margin:12px 0; border-block:1px solid var(--fr-border); border-radius:0; background:none; padding:12px 0; }
.franchise-shell .franchise-offer-cap { font-size:12px; }
.franchise-shell .franchise-scout-targets { grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.franchise-shell .franchise-scout-brief { padding:16px; gap:20px; }
.franchise-shell .franchise-target-status { font-size:11px; color:var(--fr-success); letter-spacing:.06em; }
.franchise-shell .franchise-scout-target { border-top:2px solid #4b856e!important; }
.franchise-shell .franchise-scout-empty { padding:24px; border-style:dashed; color:var(--fr-muted); }
.franchise-shell .franchise-offer-v2>header { display:flex!important; margin:0; text-align:left; padding:0 0 16px; }
.franchise-shell .franchise-offer-summary { display:flex; gap:24px; border-block:1px solid var(--fr-border); padding:12px 0; }
.franchise-shell .franchise-offer-summary>div { background:none; padding:0; border:0; border-radius:0; }
.franchise-shell .franchise-offer-summary span { font-size:11px; color:var(--fr-muted); }
.franchise-shell .franchise-agent-feedback { border-radius:4px; background:#14283b; padding:14px 16px; }
/* Development and recovery are peer decisions, presented before player picks. */
.franchise-training-decision { display:grid; grid-template-columns:1fr 1fr; border:1px solid var(--fr-border); border-radius:6px; background:var(--fr-surface); margin:20px 0; }
.franchise-training-decision>div { padding:20px; }
.franchise-training-decision h3 { margin:6px 0; font-size:20px; }
.franchise-training-decision p { color:var(--fr-muted); font-size:13px; margin:8px 0 14px; }
.franchise-training-decision .franchise-recovery { background:#112925; border-left:1px solid #355a4f; }
.franchise-shell .franchise-recovery .franchise-kicker { color:var(--fr-success)!important; }
.franchise-shell .franchise-rest { display:inline-block; width:auto; margin:0; background:#205447!important; color:#e2fff0!important; border-color:#518677!important; }
.franchise-shell .franchise-training-intro { background:none; border:0; padding:8px 0; margin:12px 0; gap:12px; }
.franchise-shell .franchise-training-intro strong { font-size:17px; }
.franchise-shell .franchise-tactic-grid { gap:8px; }
.franchise-shell .franchise-tactic-grid button { padding:12px; min-height:90px; border-radius:4px; }
.franchise-shell .franchise-tactic-grid small { color:var(--fr-muted); font-size:12px; }
.franchise-shell .franchise-training-result { text-align:center; padding:32px 24px; }
.franchise-shell .franchise-training-card { grid-template-rows:auto; align-content:start; }
.franchise-shell .franchise-training-card>.franchise-player-card { grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:8px 12px; height:auto; }
.franchise-shell .franchise-training-card :is(.franchise-player-top,.franchise-fitness,.franchise-xp,.franchise-lock) { grid-column:1/-1; }
.franchise-shell .franchise-training-card .franchise-player-value { margin:0; padding:8px 0; }
.franchise-shell .franchise-training-card .franchise-player-origin { padding:8px 0; border:0; }
.franchise-shell .franchise-training-card :is(.franchise-fitness,.franchise-xp) { margin:0; padding-top:4px; }
.franchise-shell .franchise-training-card .franchise-xp-label { font-size:10px; }
.franchise-shell .franchise-xp-award small { font-size:16px; color:var(--fr-muted); }
/* Standings and leaderboards: denser rows, clear points and playoff cutoff. */
.franchise-shell .franchise-league-scroll { scrollbar-width:thin; scrollbar-color:#456087 var(--fr-bg); border:1px solid var(--fr-border); }
.franchise-shell .franchise-league-table { min-width:790px; font-size:13px; border-collapse:separate; border-spacing:0; }
.franchise-shell .franchise-league-table :is(th,td) { height:52px; padding:10px 8px; border-bottom:1px solid var(--fr-border); }
.franchise-shell .franchise-league-table thead th { background:#1b2b42; height:42px; font-size:11px; }
.franchise-shell .franchise-league-table th[scope="row"] { font-size:13px; min-width:185px; background:#101b2c; }
.franchise-shell .franchise-league-table td:first-child { min-width:40px; width:40px; background:#101b2c; }
.franchise-shell .franchise-league-table th[scope="row"] { left:40px; }
.franchise-shell .franchise-league-table tr.franchise-user-row :is(td,th) { background:#1b3250; color:#edf5ff; }
.franchise-shell .franchise-league-table tbody tr:nth-child(4)>* { border-bottom:2px solid #c1a674; }
.franchise-shell .franchise-league-table caption { padding:12px; text-align:left; font-size:12px; color:var(--fr-muted); }
.franchise-shell .franchise-form-three { grid-template-columns:repeat(3,24px); width:82px; gap:5px; }
.franchise-shell .franchise-form-three span { width:24px; min-width:24px; height:25px; border-radius:3px; }
.franchise-shell .franchise-leaders li { min-height:70px; padding:10px 0; }
.franchise-shell .franchise-leader-total b { font-size:25px; color:#aed4ee; }
.franchise-shell .franchise-fixture-list details,.franchise-shell .franchise-season-history details { background:var(--fr-surface); border:1px solid var(--fr-border); border-radius:4px; margin:8px 0; }
/* Matchday, live broadcast and coaching: scoreboard dominates the controls. */
.franchise-shell .franchise-opponent-preview { border-radius:6px; padding:20px; background:var(--fr-surface); border-color:var(--fr-border); box-shadow:none; }
.franchise-shell .franchise-opponent-player { border-radius:3px; min-height:64px; padding:10px; background:#142237; border-color:var(--fr-border); box-shadow:none; }
.franchise-shell .franchise-opponent-player small { font-size:11px; color:var(--fr-muted); }
.franchise-shell .franchise-opponent-player>b small { font-size:10px; }
.franchise-shell .franchise-opponent-pos { border-radius:3px; }
.franchise-shell .franchise-opponent-player[data-card-quality="legend"] { border-left:2px solid var(--fr-gold); }
.franchise-shell .franchise-opponent-player[data-card-quality="superstar"] { border-left:2px solid #bfa8e6; }
.franchise-shell .franchise-opponent-player[data-card-quality="elite"] { border-left:2px solid #7ca5d8; }
.franchise-shell .franchise-opponent-bench>b { border-radius:3px; font-size:12px; }
.franchise-shell :is(.franchise-live-score,.analysis-scorebar,.franchise-halftime-scorebar) { background:#101e32!important; padding:24px 20px!important; border-radius:6px; border:1px solid var(--fr-border); box-shadow:none; margin:16px 0; }
.franchise-shell .franchise-live-numbers,.franchise-shell #analysis-score { font-size:clamp(38px,5vw,64px)!important; text-shadow:none; }
.franchise-shell .franchise-live-score>div>strong { font-size:17px; }
.franchise-shell .franchise-match-clock { border-radius:3px; background:#153348; box-shadow:none; font-size:22px; }
.franchise-shell .franchise-view-controls { border-radius:4px; background:#101b2c; box-shadow:none; padding:4px; }
.franchise-shell .franchise-view-controls button[aria-pressed="true"] { background:#233e63!important; box-shadow:none; }
.franchise-shell :is(.franchise-match-feed,.analysis-moments) { scrollbar-width:thin; scrollbar-color:#456087 var(--fr-bg); }
.franchise-shell .franchise-match-feed article { border-radius:0; box-shadow:none; border-bottom:1px solid var(--fr-border); }
.franchise-shell :is(.franchise-news-heading,.franchise-possession) { padding:12px 0; }
.franchise-shell .franchise-match-lineups { font-size:12px; }
.franchise-shell .analysis-read { background:#17263d!important; border-color:var(--fr-border)!important; }
.franchise-shell .match-analysis-row { min-height:40px; }
.franchise-shell .franchise-halftime-summary { background:var(--fr-surface); border-radius:4px; gap:0; border:1px solid var(--fr-border); }
.franchise-shell .franchise-halftime-summary>div { background:none; border:0; border-radius:0; padding:12px 16px; }
.franchise-shell .franchise-halftime-player { background:#142237; border:0; border-bottom:1px solid var(--fr-border); border-radius:0; }
.franchise-shell .franchise-halftime-actions { padding-top:16px; border-top:1px solid var(--fr-border); }
/* Player dossier, representative honours and the career archive. */
.franchise-shell .franchise-profile-stats { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:0; border:1px solid var(--fr-border); border-radius:4px; margin:16px 0 24px; }
.franchise-shell .franchise-profile-stats>div { background:var(--fr-surface); border:0; border-right:1px solid var(--fr-border); border-bottom:1px solid var(--fr-border); border-radius:0; padding:12px; }
.franchise-shell .franchise-profile-stats dd { font-size:24px; margin-top:4px; color:var(--fr-text); }
.franchise-shell .franchise-profile-stats dt { font-size:11px; color:var(--fr-muted); }
.franchise-profile>h3 { margin-top:28px; padding-bottom:8px; border-bottom:1px solid var(--fr-border); }
.franchise-profile>.franchise-panel:first-of-type { border-top:2px solid var(--fr-accent)!important; padding:24px; }
.franchise-shell .franchise-stat-detail { margin:-12px 0 24px; border-bottom:1px solid var(--fr-border); }
.franchise-shell .franchise-stat-detail summary { color:#b6cfee; font-size:13px; padding-inline:0; }
.franchise-shell .franchise-club-records>div { display:grid; grid-template-columns:minmax(160px,1fr) 2fr; align-items:center; gap:16px; padding:14px 0; border-bottom:1px solid var(--fr-border); }
.franchise-shell .franchise-club-records dt { font-weight:700; }
.franchise-shell .franchise-club-records dd { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; margin:0; }
.franchise-shell .franchise-club-records span { color:var(--fr-muted); font-size:11px; }
.franchise-shell .franchise-club-records b { display:block; font-size:22px; color:var(--fr-text); }
.franchise-shell .franchise-movement-timeline { padding:0 0 0 16px; list-style:none; border-left:1px solid #5e7191; }
.franchise-shell .franchise-movement-timeline li { position:relative; display:flex; align-items:baseline; flex-wrap:wrap; gap:8px 20px; padding:12px 0; }
.franchise-shell .franchise-movement-timeline li::before { content:''; position:absolute; left:-20px; top:21px; width:7px; height:7px; border-radius:50%; background:#90afd9; }
.franchise-shell .franchise-movement-timeline :is(span,small) { font-size:12px; color:var(--fr-muted); }
.franchise-shell .franchise-release-title { padding:16px 0 24px; }
.franchise-shell :is(.franchise-rep-card,.franchise-special-fixture,.franchise-legacy-hero) { border-radius:6px; box-shadow:none; background:linear-gradient(115deg,#242d3c,#101b2c 75%); border-color:#70654e!important; }
.franchise-shell .franchise-rep-shine { display:none; }
.franchise-shell .franchise-allstar-grid { gap:0; border:1px solid var(--fr-border); border-radius:4px; overflow:hidden; }
.franchise-shell .franchise-allstar-grid article { border:0; border-right:1px solid var(--fr-border); border-bottom:1px solid var(--fr-border); border-radius:0; padding:16px; }
.franchise-shell .franchise-special-fixture { padding:28px; }
.franchise-shell .franchise-award-card { border-radius:4px; padding:16px; background:#151f30; border-top:2px solid #9c855e!important; }
.franchise-shell .franchise-award-badge { color:var(--fr-gold); margin-bottom:14px; font-size:11px; }
.franchise-shell .franchise-award-identity h3 { font-size:19px; }
.franchise-shell .franchise-award-statline { margin-top:16px; padding-top:12px; }
.franchise-shell .franchise-poty-card { padding:28px; background:linear-gradient(110deg,#302c2a,#152037 70%); border-color:#a48e64!important; box-shadow:none; }
.franchise-shell .franchise-poty-card h2 { font-size:clamp(28px,4vw,40px); }
.franchise-shell .franchise-feats { gap:8px; }
.franchise-shell .franchise-feats article { padding:14px; }
.franchise-shell .franchise-feats p { font-size:12px; }
.franchise-shell .franchise-season-history>details>summary { font-size:13px; font-weight:700; }
@media(max-width:1100px) {
    .franchise-shell .franchise-header-metrics { flex-basis:100%; margin-left:0; }
    .franchise-shell .franchise-matchday-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .franchise-shell .franchise-profile-stats { grid-template-columns:repeat(4,minmax(0,1fr)); }
    .franchise-shell .franchise-trade-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:700px) {
    .franchise-shell { padding:16px; border-radius:6px; }
    .franchise-shell .franchise-header { gap:10px; }
    .franchise-shell .franchise-header .franchise-brand { font-size:17px; }
    .franchise-shell .franchise-header-name { flex-basis:140px; }
    .franchise-shell .franchise-header-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); width:100%; row-gap:10px; }
    .franchise-shell .franchise-header-metrics>span { padding:4px 7px; font-size:9px; }
    .franchise-shell .franchise-header-metrics strong { font-size:15px; }
    .franchise-shell .franchise-header-metrics>span:nth-child(2) strong { white-space:nowrap; }
    .franchise-shell .franchise-nav { margin-bottom:20px; }
    .franchise-shell .franchise-nav button { flex:0 0 112px; }
    .franchise-home-command { padding:20px 16px; }
    .franchise-home-hero { gap:16px; align-items:flex-start; }
    .franchise-home-hero h2 { font-size:28px; }
    .franchise-home-position { padding-left:12px; }
    .franchise-home-position strong { font-size:34px; }
    .franchise-home-progress-actions { flex-direction:column; align-items:stretch; margin-top:20px; }
    .franchise-home-progress-actions>button { width:100%; min-width:0!important; }
    .franchise-home-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .franchise-shell .franchise-home-metrics article { padding:12px; border-bottom:1px solid var(--fr-border); }
    .franchise-home-metrics strong { font-size:23px; }
    .franchise-home-grid { grid-template-columns:1fr; }
    .franchise-shell :is(.franchise-home-next,.franchise-home-recent) { padding:16px 0; }
    .franchise-shell .franchise-home-recent { border-left:0; border-top:1px solid var(--fr-border); }
    .franchise-home-news-feed article { grid-template-columns:1fr auto; gap:6px 12px; padding:14px 0; }
    .franchise-home-news-feed p { grid-row:2; grid-column:1/-1; }
    .franchise-home-news-feed small { grid-row:1; grid-column:2; font-size:10px; }
    .franchise-shell .franchise-scout-targets { grid-template-columns:1fr; }
    .franchise-training-decision { grid-template-columns:1fr; }
    .franchise-training-decision>div { padding:16px; }
    .franchise-training-decision .franchise-recovery { border-left:0; border-top:1px solid #355a4f; }
    .franchise-shell .franchise-rest { width:100%; }
    .franchise-shell .franchise-profile-stats { grid-template-columns:repeat(3,minmax(0,1fr)); }
    .franchise-shell .franchise-opponent-preview { padding:16px; }
    .franchise-shell .franchise-opponent-hero { align-items:flex-start; }
    .franchise-shell :is(.franchise-live-score,.analysis-scorebar,.franchise-halftime-scorebar) { padding:16px 8px!important; }
    .franchise-shell .franchise-live-score>div>strong { font-size:12px!important; }
    .franchise-shell :is(.franchise-live-numbers,#analysis-score) { font-size:36px!important; }
    .franchise-shell .franchise-live-score .franchise-team-badge { width:38px; height:43px; font-size:12px; }
    .franchise-shell .franchise-league-table th[scope="row"] { min-width:155px; }
    .franchise-shell .franchise-legacy-stats { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:440px) {
    .franchise-shell { padding:12px; }
    .franchise-shell .franchise-header>.franchise-team-badge { width:32px; height:38px; font-size:12px; }
    .franchise-shell .franchise-header-name>strong { font-size:15px; }
    .franchise-shell .franchise-header-name>span { font-size:11px; }
    .franchise-home-hero { flex-wrap:wrap; }
    .franchise-home-position { width:100%; padding:10px 0 0; border-left:0; border-top:1px solid var(--fr-border); display:flex; gap:10px; align-items:center; text-align:left; }
    .franchise-home-position strong { font-size:25px; }
    .franchise-home-position small { margin-left:auto; }
    .franchise-shell :is(.franchise-matchday-grid,.franchise-trade-grid) { grid-template-columns:1fr!important; }
    .franchise-shell .franchise-profile-stats { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .franchise-shell .franchise-offer-summary { gap:16px; flex-wrap:wrap; }
    .franchise-shell .franchise-cap-heading strong { font-size:14px; }
    .franchise-shell .franchise-club-records>div { grid-template-columns:1fr; gap:8px; }
    .franchise-shell .franchise-tactic-grid { grid-template-columns:1fr!important; }
}
@media(prefers-reduced-motion:reduce) {
    .franchise-shell,.franchise-shell *,.franchise-shell *::before,.franchise-shell *::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
}

/* ========================================================================
   UNR FRANCHISE HYBRID RELEASE FINISH
   Restores some of the earlier game's energy without returning to the
   over-glossy card-wall look. Presentation only: no gameplay/state rules.
   ======================================================================== */
.franchise-shell {
    --fr-glow:rgba(74,132,226,.18);
    --fr-gold-glow:rgba(219,193,140,.16);
    background:
        radial-gradient(circle at 16% -10%,rgba(53,91,157,.14),transparent 32%),
        radial-gradient(circle at 92% 5%,rgba(31,112,132,.09),transparent 28%),
        var(--fr-bg);
    box-shadow:0 22px 70px -54px rgba(0,0,0,.95), inset 0 1px 0 rgba(255,255,255,.025);
}

/* Persistent chrome: still compact, but with a little identity and depth. */
.franchise-shell .franchise-header {
    position:relative;
    background:linear-gradient(90deg,rgba(20,35,58,.34),transparent 58%);
}
.franchise-shell .franchise-header::before {
    content:"";
    position:absolute;
    left:0; right:0; bottom:-1px;
    height:1px;
    background:linear-gradient(90deg,rgba(113,159,241,.58),rgba(113,159,241,.08) 42%,transparent 80%);
    pointer-events:none;
}
.franchise-shell .franchise-nav button {
    position:relative;
    transition:color 160ms ease,background-color 160ms ease,border-color 160ms ease,transform 160ms ease!important;
}
.franchise-shell .franchise-nav button:hover:not(:disabled) {
    background:linear-gradient(180deg,rgba(53,82,126,.18),rgba(24,40,65,.04));
}
.franchise-shell .franchise-nav button[aria-current="page"] {
    color:#f4f8ff!important;
    background:linear-gradient(180deg,rgba(65,105,169,.23),rgba(33,53,82,.07))!important;
    border-bottom-color:#82b0f5!important;
    box-shadow:inset 0 -8px 20px -18px #7eb4ff!important;
}
.franchise-shell .franchise-nav button[aria-current="page"]::after {
    content:""; position:absolute; left:16%; right:16%; bottom:-2px; height:2px;
    background:#82b0f5; box-shadow:0 0 12px rgba(90,159,255,.6);
}

/* Primary interactions regain a restrained game-like finish. */
.franchise-shell .franchise-primary {
    background:linear-gradient(135deg,#315db0,#326ed0)!important;
    box-shadow:0 8px 20px -15px rgba(71,126,230,.8), inset 0 1px 0 rgba(255,255,255,.12)!important;
}
.franchise-shell .franchise-primary:hover:not(:disabled) {
    background:linear-gradient(135deg,#3b69bf,#3978db)!important;
    box-shadow:0 11px 24px -15px rgba(75,137,248,.95), inset 0 1px 0 rgba(255,255,255,.14)!important;
}
.franchise-shell .franchise-skip-season:hover:not(:disabled) {
    background:rgba(121,96,43,.13)!important;
    border-color:#8c784d!important;
}

/* Home: management command centre rather than four unrelated slides. */
.franchise-home-command {
    position:relative;
    overflow:hidden;
    background:
        radial-gradient(circle at 92% 18%,rgba(56,189,248,.10),transparent 26%),
        linear-gradient(112deg,#1a3153 0%,#13243c 48%,#101b2c 100%)!important;
    border:1px solid #314966!important;
    border-left:3px solid #719ff1!important;
    border-radius:10px!important;
    box-shadow:0 18px 44px -34px rgba(66,128,230,.9),inset 0 1px 0 rgba(255,255,255,.04)!important;
}
.franchise-home-command::after {
    content:""; position:absolute; inset:0; pointer-events:none;
    background:linear-gradient(115deg,transparent 36%,rgba(255,255,255,.025) 48%,transparent 61%);
}
.franchise-home-position strong { text-shadow:0 0 24px rgba(113,159,241,.18); }
.franchise-shell .franchise-home-metrics {
    overflow:hidden; border:1px solid var(--fr-border); border-radius:8px;
    background:linear-gradient(180deg,#111e31,#0f1a2a);
    box-shadow:0 16px 34px -30px rgba(0,0,0,.9);
}
.franchise-shell .franchise-home-metrics article {
    position:relative; background:transparent!important;
}
.franchise-shell .franchise-home-metrics article::before {
    content:""; position:absolute; left:14px; right:14px; top:0; height:1px;
    background:linear-gradient(90deg,transparent,rgba(125,172,241,.35),transparent);
}
.franchise-shell :is(.franchise-home-next,.franchise-home-recent) {
    border-radius:9px!important;
    background:linear-gradient(145deg,rgba(20,35,57,.88),rgba(15,27,44,.9))!important;
    box-shadow:0 14px 34px -30px #000,inset 0 1px 0 rgba(255,255,255,.025)!important;
}
.franchise-shell .franchise-home-news-feed article {
    transition:background-color 150ms ease,padding-left 150ms ease;
}
.franchise-shell .franchise-home-news-feed article:hover {
    background:rgba(57,86,128,.08); padding-left:8px;
}
.franchise-shell .franchise-home-news-feed article:first-child {
    background:linear-gradient(90deg,rgba(57,95,153,.12),transparent 74%);
    border-left:2px solid rgba(113,159,241,.55);
    padding-left:12px;
}

/* Cards and management lists: purposeful lift, not every-box-is-glowing. */
.franchise-shell :is(.franchise-scout-target,.franchise-offer-v2,.franchise-matchday-slot,.franchise-opponent-player,.franchise-award-card,.franchise-special-fixture) {
    transition:transform 160ms ease,border-color 160ms ease,box-shadow 160ms ease,background-color 160ms ease;
}
.franchise-shell :is(.franchise-scout-target,.franchise-offer-v2,.franchise-matchday-slot,.franchise-opponent-player):hover {
    transform:translateY(-2px);
    border-color:#405979!important;
    box-shadow:0 16px 34px -28px rgba(0,0,0,.95),inset 0 1px 0 rgba(255,255,255,.035)!important;
}
.franchise-shell .franchise-player-card {
    background-image:linear-gradient(140deg,rgba(50,77,118,.08),transparent 54%);
    box-shadow:0 11px 28px -28px rgba(0,0,0,.95),inset 0 1px 0 rgba(255,255,255,.02);
}
.franchise-shell .franchise-player-card[data-ovr-tier="elite"] { box-shadow:inset 2px 0 #719ff1,0 11px 28px -28px #000; }
.franchise-shell .franchise-player-card[data-ovr-tier="superstar"] { box-shadow:inset 2px 0 #d3b978,0 11px 28px -26px rgba(219,193,140,.24); }
.franchise-shell .franchise-target-status {
    background:linear-gradient(90deg,rgba(53,116,134,.20),transparent);
    border-left:2px solid #67b9cb;
    padding-left:9px;
}

/* League and leaderboards: sports table cues, without changing values. */
.franchise-shell .franchise-league-table tbody tr { transition:background-color 140ms ease; }
.franchise-shell .franchise-league-table tbody tr:hover { background:rgba(54,79,116,.10); }
.franchise-shell .franchise-league-table tbody tr:nth-child(4) { box-shadow:inset 0 -1px #54709a; }
.franchise-shell .franchise-league-table .franchise-user-row {
    background:linear-gradient(90deg,rgba(56,104,173,.18),rgba(45,70,105,.08))!important;
    box-shadow:inset 3px 0 #719ff1;
}
.franchise-shell .franchise-leaders-grid article:first-child { border-top:2px solid #69a9e8!important; }
.franchise-shell .franchise-leaders-grid article:last-child { border-top:2px solid #7b90d4!important; }

/* Transfers/Offers: comparison feels like a transaction, not two floating cards. */
.franchise-shell .franchise-offer-v2 {
    background:linear-gradient(145deg,#111f33,#101a2a 72%)!important;
    border-radius:9px!important;
}
.franchise-shell .franchise-offer-arrow {
    box-shadow:0 0 0 5px rgba(72,100,146,.08),inset 0 1px 0 rgba(255,255,255,.05);
}
.franchise-shell .franchise-offer-summary strong.is-positive { text-shadow:0 0 14px rgba(126,231,183,.16); }
.franchise-shell .franchise-offer-summary strong.is-negative { text-shadow:0 0 14px rgba(255,154,170,.12); }

/* Training: deliberate split between development and recovery. */
.franchise-training-decision {
    overflow:hidden;
    background:linear-gradient(135deg,#111f32,#102338)!important;
    border-radius:9px!important;
    box-shadow:0 16px 36px -32px #000;
}
.franchise-training-decision .franchise-recovery {
    background:linear-gradient(140deg,#112c26,#12283a)!important;
}
.franchise-shell .franchise-rest {
    box-shadow:0 8px 20px -16px rgba(73,174,143,.55)!important;
}

/* Match Centre: actual club colours own the live presentation. */
.franchise-shell.franchise-match-centre .franchise-live-score,
.franchise-shell.franchise-match-centre .analysis-scorebar,
.franchise-shell.franchise-halftime .franchise-halftime-scorebar {
    position:relative;
    background:
        radial-gradient(circle at 8% 50%,rgba(255,255,255,.035),transparent 20%),
        radial-gradient(circle at 92% 50%,rgba(255,255,255,.035),transparent 20%),
        #101e32!important;
    box-shadow:inset 3px 0 var(--match-home,#719ff1),inset -3px 0 var(--match-away,#7b90d4),0 18px 40px -34px #000!important;
}
.franchise-shell.franchise-match-centre .franchise-live-score>div:first-child>strong,
.franchise-shell.franchise-match-centre .analysis-scorebar>div:first-child>strong { color:var(--match-home-soft,#b7ccf0); }
.franchise-shell.franchise-match-centre .franchise-live-score>div:last-child>strong,
.franchise-shell.franchise-match-centre .analysis-scorebar>div:last-child>strong { color:var(--match-away-soft,#b7ccf0); }
.franchise-shell .franchise-possession>div:first-child span:first-child { color:var(--match-home-soft,#cbd5e1); }
.franchise-shell .franchise-possession>div:first-child span:last-child { color:var(--match-away-soft,#cbd5e1); }
.franchise-possession-track {
    min-height:8px;
    outline:1px solid rgba(148,163,184,.12);
    box-shadow:inset 0 1px 3px rgba(0,0,0,.62),0 0 16px -11px var(--home-soft,#719ff1),0 0 16px -11px var(--away-soft,#7b90d4)!important;
}
.match-analysis-v9 .analysis-dual-track {
    outline:1px solid rgba(148,163,184,.10);
    box-shadow:inset 0 1px 3px rgba(0,0,0,.58)!important;
}
.franchise-shell .franchise-match-feed article.is-latest {
    background:linear-gradient(90deg,rgba(53,92,150,.15),rgba(17,30,49,.04));
    border-left:2px solid #69a9e8;
    padding-left:12px;
}
.franchise-shell .franchise-match-feed article.is-latest .franchise-live-news-title b { color:#f4f8ff; }
.franchise-shell .franchise-view-controls button[aria-pressed="true"],
.franchise-shell .franchise-match-speed button[aria-pressed="true"],
.franchise-shell .franchise-match-actions .is-active {
    background:linear-gradient(135deg,#294c7b,#315f93)!important;
    border-color:#739fd2!important;
    box-shadow:inset 0 1px rgba(255,255,255,.08),0 8px 18px -16px rgba(77,148,228,.8)!important;
}

/* Halftime, rep games and awards deserve slightly more ceremony. */
.franchise-shell .franchise-halftime-summary {
    box-shadow:0 12px 30px -28px #000,inset 0 1px 0 rgba(255,255,255,.025);
}
.franchise-shell :is(.franchise-rep-card,.franchise-special-fixture,.franchise-legacy-hero) {
    position:relative; overflow:hidden;
    background:
        radial-gradient(circle at 82% 18%,rgba(219,193,140,.09),transparent 28%),
        linear-gradient(115deg,#272f3f,#101b2c 74%)!important;
    box-shadow:0 18px 42px -34px rgba(219,193,140,.32),inset 0 1px 0 rgba(255,255,255,.035)!important;
}
.franchise-shell .franchise-rep-shine {
    display:block!important; opacity:.16; pointer-events:none;
    background:linear-gradient(110deg,transparent 28%,rgba(255,255,255,.18) 49%,transparent 68%);
    transform:translateX(-115%);
    animation:fr-rep-sheen 7s ease-in-out infinite;
}
@keyframes fr-rep-sheen { 0%,68%{transform:translateX(-115%)} 84%,100%{transform:translateX(115%)} }
.franchise-shell .franchise-poty-card {
    background:
        radial-gradient(circle at 88% 10%,rgba(219,193,140,.14),transparent 28%),
        linear-gradient(112deg,#302c2a,#17223a 68%)!important;
    box-shadow:0 18px 46px -34px rgba(219,193,140,.4),inset 0 1px 0 rgba(255,255,255,.04)!important;
}

/* Desktop polish without harming intentional mobile horizontal scroll. */
@media(min-width:701px) {
    .franchise-shell .franchise-panel { border-radius:8px; }
    .franchise-shell .franchise-opponent-player { border-radius:7px; }
    .franchise-shell .franchise-profile-stats { border-radius:8px; overflow:hidden; }
}
@media(max-width:700px) {
    .franchise-home-command { border-radius:8px!important; }
    .franchise-shell .franchise-home-news-feed article:hover { padding-left:0; }
    .franchise-shell .franchise-home-news-feed article:first-child { padding-left:9px; }
}
@media(prefers-reduced-motion:reduce) {
    .franchise-shell .franchise-rep-shine { animation:none!important; transform:none; }
}

/* Team identity carries through opponent reports and half time. */
.franchise-shell .franchise-opponent-preview {
    border-left:3px solid var(--opp-primary,#719ff1)!important;
    box-shadow:0 16px 38px -32px var(--opp-primary,#000),inset 0 1px 0 rgba(255,255,255,.03)!important;
    background:
        linear-gradient(100deg,rgba(255,255,255,.025),transparent 28%),
        linear-gradient(145deg,#13233a,#101b2c 72%)!important;
}
.franchise-shell .franchise-opponent-preview .franchise-opponent-tag {
    color:var(--opp-secondary,#9fc7ff)!important;
    border-color:var(--opp-primary,#719ff1)!important;
    background:rgba(16,27,44,.72)!important;
}
.franchise-shell .franchise-opponent-preview .franchise-opponent-pos {
    color:var(--opp-secondary,#9fc7ff)!important;
    border-color:var(--opp-primary,#719ff1)!important;
}
.franchise-shell.franchise-halftime .franchise-halftime-scorebar {
    box-shadow:inset 3px 0 var(--match-home,#719ff1),inset -3px 0 var(--match-away,#7b90d4),0 18px 40px -34px #000!important;
}
.franchise-shell.franchise-halftime .franchise-halftime-scorebar>div:first-child strong { color:var(--match-home-soft,#cbd5e1); }
.franchise-shell.franchise-halftime .franchise-halftime-scorebar>div:last-child strong { color:var(--match-away-soft,#cbd5e1); }

/* ========================================================================
   RELEASE FINISHING PASS · fresh sports-game finish
   Restores selective depth, identity and motion without changing gameplay.
   ======================================================================== */
.franchise-shell {
    background:
        radial-gradient(circle at 8% 0%,rgba(73,104,183,.12),transparent 25%),
        radial-gradient(circle at 96% 8%,rgba(22,104,136,.08),transparent 26%),
        linear-gradient(180deg,#0b1423,#091220 72%)!important;
    border-color:#29405e!important;
    box-shadow:0 24px 70px -55px #000, inset 0 1px 0 rgba(255,255,255,.035)!important;
}
.franchise-shell .franchise-panel {
    border-color:#2d425e!important;
    background:linear-gradient(145deg,rgba(18,33,54,.96),rgba(14,26,43,.98))!important;
    box-shadow:0 12px 30px -29px #000,inset 0 1px 0 rgba(255,255,255,.028)!important;
}
.franchise-shell button {
    box-shadow:inset 0 1px 0 rgba(255,255,255,.035),0 8px 22px -20px #000!important;
}
.franchise-shell .franchise-primary {
    background:linear-gradient(135deg,#315fb9,#2d76df)!important;
    border-color:#6da1ff!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 10px 24px -18px rgba(55,126,230,.75)!important;
}
.franchise-shell .franchise-primary:hover:not(:disabled){
    background:linear-gradient(135deg,#3b6ac7,#3886ef)!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 13px 26px -18px rgba(65,145,255,.9)!important;
}
.franchise-shell .franchise-nav button[aria-current="page"] {
    background:linear-gradient(180deg,rgba(45,83,132,.34),rgba(24,48,78,.56))!important;
    border-bottom-color:#78b0ff!important;
    box-shadow:inset 0 -8px 24px -20px #65a7ff!important;
}
.franchise-shell .franchise-home-command {
    border:1px solid #35577d!important;
    border-left:3px solid #75adff!important;
    border-radius:10px!important;
    background:
        radial-gradient(circle at 85% 10%,rgba(66,140,230,.13),transparent 30%),
        linear-gradient(115deg,#1b3456,#122238 72%)!important;
    box-shadow:0 20px 48px -39px rgba(57,116,196,.65),inset 0 1px 0 rgba(255,255,255,.045)!important;
}
.franchise-shell .franchise-home-main-action { min-width:220px; }
.franchise-career-summary-action::after { content:' →'; }
.franchise-shell .franchise-home-position strong { text-shadow:0 5px 20px rgba(112,173,255,.2); }
.franchise-shell .franchise-home-metrics {
    border-color:#314865!important;
    background:linear-gradient(180deg,rgba(17,31,50,.96),rgba(13,25,41,.98))!important;
}
.franchise-shell .franchise-home-metrics strong { color:#f5f9ff; }
.franchise-shell .franchise-home-next,.franchise-shell .franchise-home-recent {
    border-color:#304967!important;
}

/* Phase-closed states do not dump dead controls and giant disabled cards. */
.franchise-closed-state {
    position:relative; overflow:hidden; max-width:880px; margin:34px auto 10px; padding:34px;
    border:1px solid #35506f; border-radius:12px;
    background:linear-gradient(135deg,#162b47,#0f1d31 72%);
    box-shadow:0 24px 56px -45px #000,inset 0 1px 0 rgba(255,255,255,.04);
}
.franchise-closed-state::after { content:""; position:absolute; right:-90px; top:-110px; width:260px; height:260px; border-radius:50%; background:radial-gradient(circle,rgba(92,153,232,.12),transparent 66%); pointer-events:none; }
.franchise-closed-state h2 { margin:6px 0 8px; }
.franchise-closed-state p { margin:0; color:var(--fr-muted); max-width:680px; }
.franchise-closed-state.is-soft { max-width:none; margin:18px 0; padding:24px; }

/* Scouting: compact recruitment board with no technical provenance clutter. */
.franchise-scout-heading { align-items:flex-end!important; }
.franchise-scout-allocation { display:flex; align-items:flex-end; gap:8px; padding:9px 12px; border:1px solid #35506e; border-radius:8px; background:#10213a; }
.franchise-scout-allocation strong { font-size:26px; line-height:1; color:#9ed2ff; }
.franchise-scout-allocation span { font-size:9px; letter-spacing:.11em; color:#8fa9c8; }
.franchise-scout-toolbar { display:grid; grid-template-columns:160px 190px minmax(210px,1fr); gap:0; align-items:stretch; margin:16px 0; border:1px solid #304762; border-radius:9px; overflow:hidden; background:linear-gradient(180deg,#12233a,#0e1d30); }
.franchise-scout-toolbar>div { display:flex; flex-direction:column; justify-content:center; padding:12px 16px; border-right:1px solid #304762; }
.franchise-scout-toolbar>div strong { font-size:19px; }
.franchise-scout-toolbar>div span { margin-top:2px; font-size:9px; letter-spacing:.1em; color:#8399b5; }
.franchise-scout-toolbar>button { margin:8px; justify-self:end; min-width:220px; }
.franchise-scout-targets-release { grid-template-columns:repeat(3,minmax(0,1fr))!important; gap:14px!important; }
.franchise-scout-card { position:relative; overflow:hidden; min-width:0; padding:14px; border:1px solid #344d69; border-radius:10px; background:linear-gradient(145deg,#13253e,#0e1d31 76%); box-shadow:0 18px 38px -34px #000,inset 0 1px 0 rgba(255,255,255,.035); transition:transform 160ms,border-color 160ms,box-shadow 160ms; }
.franchise-scout-card:hover { transform:translateY(-2px); border-color:#5580ac; box-shadow:0 20px 42px -33px rgba(37,101,166,.4),inset 0 1px 0 rgba(255,255,255,.05); }
.franchise-scout-card[data-ovr-tier="elite"] { border-top-color:#7b8dff; }
.franchise-scout-card[data-ovr-tier="superstar"] { border-top-color:#d8bb72; box-shadow:0 20px 42px -34px rgba(216,187,114,.32),inset 0 1px 0 rgba(255,255,255,.04); }
.franchise-scout-card-top { display:flex; justify-content:space-between; align-items:center; gap:8px; margin-bottom:6px; }
.franchise-scout-card .franchise-target-status { margin:0; padding:3px 8px; border-radius:4px; background:rgba(63,190,176,.1); border-left:2px solid #61dbc9; color:#79eadb; font-size:9px; letter-spacing:.1em; }
.franchise-scout-fit { font-size:10px; color:#8197b4; }
.franchise-scout-card .franchise-player-card { margin:0; border:0!important; border-radius:7px; background:rgba(6,15,28,.28)!important; box-shadow:none!important; }
.franchise-scout-card .franchise-player-origin { margin-bottom:0; }
.franchise-scout-impact { display:grid; grid-template-columns:1fr auto; gap:10px; margin:10px 0; padding:9px 0; border-block:1px solid #2a405a; }
.franchise-scout-impact span { display:flex; flex-direction:column; gap:2px; font-size:9px; letter-spacing:.07em; color:#7e94b0; }
.franchise-scout-impact span:last-child { text-align:right; }
.franchise-scout-impact strong { font-size:13px; letter-spacing:0; color:#dce8f8; }
.franchise-scout-impact strong.is-negative { color:#ff9cab; }
.franchise-scout-card>button { width:100%; }
.franchise-scout-empty-release { grid-column:1/-1; padding:34px; border:1px dashed #3b526d; border-radius:10px; text-align:center; background:rgba(16,31,51,.5); }

/* Training becomes a management workspace rather than a wall of full cards. */
.franchise-training-live { color:#84e7c2!important; border:1px solid #315f55; border-radius:999px; padding:6px 10px; background:#102b29; }
.franchise-training-decision-release { display:grid; grid-template-columns:minmax(0,2.1fr) minmax(250px,.9fr); gap:14px; margin:16px 0 20px; }
.franchise-training-focus-release { padding:18px; border:1px solid #334c68; border-radius:10px; background:linear-gradient(145deg,#142741,#102036); }
.franchise-training-focus-copy { display:flex; align-items:baseline; flex-wrap:wrap; gap:4px 12px; margin-bottom:14px; }
.franchise-training-focus-copy h3 { margin:0; }
.franchise-training-focus-copy p { flex-basis:100%; margin:0; color:#8fa4c0; font-size:12px; }
.franchise-training-focus-options { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
.franchise-training-focus-options button { display:grid; grid-template-columns:1fr auto; gap:3px 8px; min-height:86px; text-align:left; background:#0e1b2d!important; border-color:#304966!important; }
.franchise-training-focus-options button strong { font-size:12px; }
.franchise-training-focus-options button b { color:#82c7ff; font-size:12px; }
.franchise-training-focus-options button small { grid-column:1/-1; color:#7e93ae; font-size:9px; line-height:1.4; }
.franchise-training-focus-options button.is-selected { background:linear-gradient(145deg,#1d3a62,#172b47)!important; border-color:#79aaf0!important; box-shadow:inset 3px 0 #7db3ff,0 12px 26px -22px rgba(73,137,220,.7)!important; }
.franchise-training-decision-release>aside { padding:18px; border:1px solid #315b51; border-radius:10px; background:linear-gradient(145deg,#102d2a,#11263a); box-shadow:0 15px 34px -31px rgba(67,180,143,.45); }
.franchise-training-decision-release>aside h3 { margin:5px 0; }
.franchise-training-decision-release>aside p { color:#91ada8; font-size:12px; }
.franchise-training-decision-release>aside button { width:100%; margin-top:8px; }
.franchise-training-decision-release .franchise-rest { background:linear-gradient(135deg,#17624f,#1d8066)!important; border-color:#51b696!important; color:#effff9!important; }
.franchise-training-skip { background:transparent!important; color:#8295ad!important; }
.franchise-training-roster-release { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.franchise-training-player-release { overflow:hidden; border:1px solid #304761; border-radius:10px; background:linear-gradient(145deg,#122239,#0e1b2d); box-shadow:0 15px 34px -31px #000,inset 0 1px 0 rgba(255,255,255,.03); }
.franchise-training-player-release[data-ovr-tier="elite"] { border-top-color:#8b83f3; }
.franchise-training-player-release[data-ovr-tier="superstar"] { border-top-color:#d7b96f; }
.franchise-training-player-release>header { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:10px; padding:13px; border-bottom:1px solid #283d56; }
.franchise-training-rating { display:flex; flex-direction:column; align-items:center; min-width:52px; padding-right:10px; border-right:1px solid #304761; }
.franchise-training-rating strong { font-size:27px; line-height:1; color:#82b7ff; }
.franchise-training-player-release[data-ovr-tier="elite"] .franchise-training-rating strong { color:#bc9cff; }
.franchise-training-player-release[data-ovr-tier="superstar"] .franchise-training-rating strong { color:#e2c274; }
.franchise-training-rating span { margin-top:3px; font-size:8px; letter-spacing:.12em; color:#8093ad; }
.franchise-training-player-release h3 { margin:0; font-size:15px; }
.franchise-training-player-release header p { margin:2px 0 0; font-size:10px; color:#8398b3; }
.franchise-training-profile { min-height:32px!important; padding:6px 8px!important; font-size:9px!important; background:transparent!important; }
.franchise-training-bars { display:grid; gap:10px; padding:12px 13px; }
.franchise-training-bars>div>span { display:flex; justify-content:space-between; font-size:9px; letter-spacing:.06em; color:#8da0b9; }
.franchise-training-bars i { display:block; height:5px; margin-top:5px; border-radius:999px; background:#07111f; overflow:hidden; }
.franchise-training-bars i>b { display:block; height:100%; border-radius:inherit; background:linear-gradient(90deg,#1bbf76,#53dea2); }
.franchise-training-bars i.is-xp>b { background:linear-gradient(90deg,#6e6ff1,#55bbf4); }
.franchise-training-player-release>footer { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:11px 13px; border-top:1px solid #283d56; background:rgba(5,12,22,.16); }
.franchise-training-player-release>footer>div { min-width:0; }
.franchise-training-player-release>footer strong { display:block; font-size:10px; color:#d8e5f7; }
.franchise-training-player-release>footer small { display:block; margin-top:2px; font-size:9px; color:#7b90aa; }
.franchise-training-player-release>footer button { min-width:88px; min-height:36px; padding:7px 12px; }
.franchise-training-result-release { max-width:760px; margin:34px auto; padding:32px; border:1px solid #356050; border-radius:12px; background:radial-gradient(circle at 90% 0%,rgba(65,190,146,.11),transparent 30%),linear-gradient(145deg,#15312e,#12233a 72%); box-shadow:0 24px 55px -44px rgba(65,190,146,.55); }
.franchise-training-result-release.is-development { border-color:#426497; background:radial-gradient(circle at 90% 0%,rgba(89,149,236,.14),transparent 30%),linear-gradient(145deg,#162b49,#112039 72%); }
.franchise-training-result-number { display:flex; align-items:flex-end; gap:8px; margin:14px 0; font-size:48px; line-height:1; font-weight:900; color:#7be0b5; }
.franchise-training-result-release.is-development .franchise-training-result-number { color:#8fc4ff; }
.franchise-training-result-number small { padding-bottom:5px; font-size:11px; letter-spacing:.12em; color:#8ba1bb; }
.franchise-milestone-release { margin:14px 0; padding:18px; border:1px solid #816b38; border-radius:9px; background:linear-gradient(135deg,rgba(91,68,23,.22),rgba(18,31,50,.8)); }

/* Offers read as deliberate club proposals, with one clear decision footer. */
.franchise-offer-release { overflow:hidden; margin:14px 0; border:1px solid #344c69; border-radius:11px; background:linear-gradient(145deg,#142641,#0f1e33 76%); box-shadow:0 20px 46px -38px #000,inset 0 1px 0 rgba(255,255,255,.035); }
.franchise-offer-release>header { display:flex; justify-content:space-between; align-items:center; gap:14px; padding:16px 18px; border-bottom:1px solid #2d435e; background:rgba(7,16,29,.18); }
.franchise-offer-release>header>div { display:flex; align-items:center; gap:12px; }
.franchise-offer-release h2 { margin:2px 0 0; font-size:19px; }
.franchise-offer-status { padding:5px 8px; border:1px solid #3a6e5e; border-radius:999px; background:#102b29; color:#7fe1bf; font-size:9px; letter-spacing:.1em; }
.franchise-offer-release-swap { display:grid; grid-template-columns:1fr 50px 1fr; gap:12px; align-items:center; padding:18px; }
.franchise-offer-player-compact>span { display:block; margin-bottom:7px; font-size:9px; font-weight:800; letter-spacing:.11em; color:#8195b0; }
.franchise-offer-player-compact>div { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:10px; min-height:90px; padding:13px; border:1px solid #2e465f; border-radius:8px; background:#0d1a2c; }
.franchise-offer-player-compact h3 { margin:0; font-size:16px; }
.franchise-offer-player-compact p { margin:2px 0 0; font-size:10px; color:#8195af; }
.franchise-offer-player-compact>div>strong { font-size:26px; color:#82b6ff; text-align:center; }
.franchise-offer-player-compact>div>strong small { display:block; font-size:8px; letter-spacing:.1em; color:#778ba6; }
.franchise-offer-release-arrow { display:grid; place-items:center; width:42px; height:42px; margin:auto; border:1px solid #4b6d93; border-radius:50%; background:#132842; color:#a8cfff; font-size:18px; box-shadow:0 0 0 6px rgba(57,98,151,.07); }
.franchise-offer-release-impact { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); margin:0 18px 16px; border:1px solid #2d435c; border-radius:8px; overflow:hidden; }
.franchise-offer-release-impact>div { padding:10px 12px; border-right:1px solid #2d435c; }
.franchise-offer-release-impact>div:last-child { border-right:0; }
.franchise-offer-release-impact span { display:block; font-size:8px; letter-spacing:.1em; color:#8093ad; }
.franchise-offer-release-impact strong { display:block; margin-top:3px; font-size:15px; }
.franchise-offer-release .is-positive { color:#7de0b8; }
.franchise-offer-release .is-negative { color:#ff9dac; }
.franchise-offer-release>footer { display:flex; justify-content:flex-end; gap:8px; padding:12px 18px; border-top:1px solid #2d435e; background:rgba(6,14,26,.2); }
.franchise-offers-empty-release { padding:34px; border:1px dashed #3b526f; border-radius:10px; text-align:center; background:rgba(15,30,49,.55); }

/* Representative identity is explicit again. Generic release polish must not
   overwrite these three cards. */
.franchise-shell .franchise-rep-card.franchise-rep-release { min-height:310px; display:flex; flex-direction:column; align-items:center; justify-content:flex-start; padding:22px!important; border-radius:12px!important; isolation:isolate; }
.franchise-shell .franchise-rep-card.franchise-rep-arl { color:#f8fafc!important; border-color:#e33440!important; background:radial-gradient(circle at 75% 16%,rgba(226,43,55,.24),transparent 28%),linear-gradient(145deg,#050608,#101114 55%,#40080d)!important; box-shadow:0 22px 48px -34px rgba(227,52,64,.65),inset 0 0 0 1px rgba(227,52,64,.16)!important; }
.franchise-shell .franchise-rep-card.franchise-rep-yorkshire { color:#111827!important; border-color:#ffffff!important; background:radial-gradient(circle at 75% 16%,rgba(255,255,255,.95),transparent 24%),linear-gradient(145deg,#ffffff,#e9eef5 58%,#cbd5e1)!important; box-shadow:0 22px 48px -34px rgba(255,255,255,.85),inset 0 0 0 1px #fff!important; }
.franchise-shell .franchise-rep-card.franchise-rep-lancashire { color:#fff!important; border-color:#ff5a64!important; background:radial-gradient(circle at 75% 16%,rgba(255,91,100,.30),transparent 26%),linear-gradient(145deg,#310508,#8e1018 58%,#d51f2a)!important; box-shadow:0 22px 48px -34px rgba(219,31,43,.75),inset 0 0 0 1px rgba(255,184,188,.15)!important; }
.franchise-shell .franchise-rep-card.franchise-rep-yorkshire :is(h2,p,.franchise-kicker,.franchise-rep-record span,.franchise-rep-record small) { color:#1f2937!important; }
.franchise-shell .franchise-rep-card.franchise-rep-yorkshire .franchise-primary { background:linear-gradient(135deg,#27364a,#48637f)!important; border-color:#71859d!important; }
.franchise-shell .franchise-rep-card.franchise-rep-arl .franchise-primary { background:linear-gradient(135deg,#8b1019,#d22530)!important; border-color:#ff6670!important; }
.franchise-shell .franchise-rep-card.franchise-rep-lancashire .franchise-primary { background:linear-gradient(135deg,#7a0910,#b9101a)!important; border-color:#ff7179!important; }
.franchise-shell .franchise-rep-card.franchise-rep-release>header { width:100%; display:flex; justify-content:space-between; gap:10px; position:relative; z-index:2; font-size:9px; letter-spacing:.11em; font-weight:800; opacity:.88; }
.franchise-rep-mark { position:relative; z-index:2; display:grid; place-items:center; width:66px; height:66px; margin:20px 0 10px; border:1px solid currentColor; border-radius:50%; font-size:24px; font-weight:950; letter-spacing:-.04em; background:rgba(255,255,255,.04); box-shadow:inset 0 1px rgba(255,255,255,.12); }
.franchise-rep-yorkshire .franchise-rep-mark { background:rgba(255,255,255,.68); }
.franchise-shell .franchise-rep-card.franchise-rep-release h2 { position:relative; z-index:2; margin:4px 0; }
.franchise-shell .franchise-rep-card.franchise-rep-release>p { position:relative; z-index:2; margin:0 0 14px; text-align:center; min-height:42px; color:#b7c4d8; }
.franchise-rep-record { position:relative; z-index:2; display:flex; align-items:baseline; gap:7px; margin:auto 0 14px; }
.franchise-rep-record span,.franchise-rep-record small { font-size:9px; letter-spacing:.1em; color:#9dafc7; }
.franchise-rep-record strong { font-size:19px; }
.franchise-shell .franchise-rep-card.franchise-rep-release>button { position:relative; z-index:2; width:100%; }
.franchise-shell .franchise-rep-card.franchise-rep-release .franchise-rep-shine { display:block!important; z-index:1; position:absolute; inset:-40%; opacity:.42; transform:translateX(-120%) rotate(16deg); animation:fr-release-rep-shine 5.8s ease-in-out infinite!important; }
.franchise-shell .franchise-rep-card.franchise-rep-arl .franchise-rep-shine { background:linear-gradient(90deg,transparent 39%,rgba(228,42,55,.30) 47%,rgba(255,255,255,.18) 50%,transparent 61%)!important; }
.franchise-shell .franchise-rep-card.franchise-rep-yorkshire .franchise-rep-shine { background:linear-gradient(90deg,transparent 38%,rgba(255,255,255,.08) 44%,rgba(255,255,255,.98) 50%,transparent 61%)!important; }
.franchise-shell .franchise-rep-card.franchise-rep-lancashire .franchise-rep-shine { background:linear-gradient(90deg,transparent 38%,rgba(255,170,175,.20) 46%,rgba(255,255,255,.20) 50%,transparent 61%)!important; }
@keyframes fr-release-rep-shine { 0%,64%{transform:translateX(-120%) rotate(16deg)} 86%,100%{transform:translateX(120%) rotate(16deg)} }
.franchise-rep-history-release { margin-top:26px; }
.franchise-rep-history-list { overflow:hidden; border:1px solid #304762; border-radius:9px; background:#0e1b2d; }
.franchise-rep-history-row { display:grid; grid-template-columns:130px 80px 90px 1fr; align-items:center; gap:10px; padding:10px 13px; border-bottom:1px solid #273b54; }
.franchise-rep-history-row:last-child { border-bottom:0; }
.franchise-rep-history-side { font-weight:800; }
.franchise-rep-history-side.is-arl { color:#ff6a72; }
.franchise-rep-history-side.is-yorkshire { color:#e8eef5; }
.franchise-rep-history-side.is-lancashire { color:#ff737a; }
.franchise-rep-history-row .is-win { color:#7be1b8; }
.franchise-rep-history-row .is-loss { color:#ff9ba9; }
.franchise-rep-history-row small { text-align:right; color:#7f93ad; }
.franchise-rep-history-more { margin-top:8px; border:1px solid #304762; border-radius:8px; }
.franchise-rep-history-more summary { font-size:10px; letter-spacing:.08em; }
.franchise-rep-history-more .franchise-rep-history-list { border:0; border-radius:0; }

/* Match-control bars use the actual team's bar colour with crisp separation. */
.franchise-possession-track { height:9px!important; border-radius:999px!important; background:linear-gradient(to right,var(--home-col) 0,var(--home-col) calc(var(--home-pos) - .35%),#dce7f3 var(--home-pos),var(--away-col) calc(var(--home-pos) + .35%),var(--away-col) 100%)!important; box-shadow:inset 0 1px 3px rgba(0,0,0,.65),0 0 18px -10px var(--home-col),0 0 18px -10px var(--away-col)!important; }
.match-analysis-v9 .analysis-dual-track { height:8px!important; border-radius:999px!important; background:linear-gradient(to right,var(--home) 0,var(--home) calc(var(--home-pct) - .4%),#dce7f3 var(--home-pct),var(--away) calc(var(--home-pct) + .4%),var(--away) 100%)!important; box-shadow:inset 0 1px 3px rgba(0,0,0,.65),0 0 15px -11px var(--home),0 0 15px -11px var(--away)!important; }
.franchise-shell.franchise-match-centre .franchise-live-score { border-left:3px solid var(--match-home,#719ff1)!important; border-right:3px solid var(--match-away,#7b90d4)!important; }

@media(max-width:1100px){
    .franchise-scout-targets-release,.franchise-training-roster-release{grid-template-columns:repeat(2,minmax(0,1fr))!important}
    .franchise-scout-toolbar{grid-template-columns:1fr 1fr}.franchise-scout-toolbar>button{grid-column:1/-1;width:calc(100% - 16px);justify-self:stretch;min-width:0}
}
@media(max-width:780px){
    .franchise-training-decision-release{grid-template-columns:1fr}.franchise-training-focus-options{grid-template-columns:1fr}
    .franchise-offer-release-swap{grid-template-columns:1fr}.franchise-offer-release-arrow{transform:rotate(90deg)}
    .franchise-offer-release-impact{grid-template-columns:1fr}.franchise-offer-release-impact>div{border-right:0;border-bottom:1px solid #2d435c}.franchise-offer-release-impact>div:last-child{border-bottom:0}
    .franchise-rep-history-row{grid-template-columns:1fr auto auto}.franchise-rep-history-row small{grid-column:1/-1;text-align:left}
}
@media(max-width:620px){
    .franchise-scout-targets-release,.franchise-training-roster-release{grid-template-columns:1fr!important}
    .franchise-scout-toolbar{grid-template-columns:1fr}.franchise-scout-toolbar>div{border-right:0;border-bottom:1px solid #304762}
    .franchise-scout-toolbar>button{grid-column:auto}
    .franchise-training-player-release>header{grid-template-columns:auto 1fr}.franchise-training-profile{grid-column:1/-1;width:100%}
    .franchise-training-player-release>footer{align-items:flex-end}.franchise-training-player-release>footer button{min-width:78px}
    .franchise-offer-release>header{align-items:flex-start;flex-direction:column}.franchise-offer-release>footer{flex-direction:column-reverse}.franchise-offer-release>footer button{width:100%}
}
@media(prefers-reduced-motion:reduce){
    .franchise-shell .franchise-rep-card.franchise-rep-release .franchise-rep-shine{animation:none!important;transform:none!important;opacity:.14}
    .franchise-scout-card:hover{transform:none}
}

/* ===== UNR release polish hotfix 2.1.1 ===== */
/* Draft spin: turn the dead waiting state into a proper pack/recruitment reveal. */
.franchise-shell:has(.franchise-rolling) .franchise-workspace>.franchise-panel{position:relative;overflow:hidden;min-height:280px;background:radial-gradient(circle at 50% 30%,rgba(76,137,255,.18),transparent 42%),linear-gradient(145deg,#12243e,#0b1728)!important;border-color:#416a9e!important;box-shadow:0 24px 55px -40px #4f8fff,inset 0 1px 0 rgba(255,255,255,.06)}
.franchise-rolling{min-height:190px;display:grid;place-items:center;font-size:0;position:relative;isolation:isolate}
.franchise-rolling:before{content:"SCOUTING 5 PLAYERS";font-size:13px;font-weight:900;letter-spacing:.16em;color:#dbeafe;padding:15px 24px;border:1px solid #6ea8ff;border-radius:8px;background:linear-gradient(135deg,#1c4d92,#2738a0);box-shadow:0 0 0 6px rgba(67,126,225,.08),0 20px 42px -20px #3b82f6;animation:unrSpinPulse .75s ease-in-out infinite alternate}
.franchise-rolling:after{content:"";position:absolute;width:72%;height:2px;background:linear-gradient(90deg,transparent,#6fd8ff,#9b8cff,transparent);box-shadow:0 0 18px #65bfff;animation:unrSpinScan .75s ease-in-out infinite}
@keyframes unrSpinPulse{to{transform:translateY(-4px) scale(1.025);filter:brightness(1.18)}}
@keyframes unrSpinScan{0%{transform:translateY(-62px);opacity:.25}50%{opacity:1}100%{transform:translateY(62px);opacity:.25}}
.franchise-options{gap:12px!important}.franchise-option{position:relative;overflow:hidden;border-color:#385678!important;background:linear-gradient(145deg,#142945,#0d1b2f)!important;box-shadow:0 16px 30px -28px #000,inset 0 1px rgba(255,255,255,.04)!important}.franchise-option:hover{transform:translateY(-3px);border-color:#6ca7ef!important;box-shadow:0 20px 34px -24px rgba(75,143,236,.55)!important}.franchise-option.franchise-selected{border-color:#8abaff!important;box-shadow:0 0 0 2px rgba(99,161,255,.18),0 22px 40px -26px #5c9eff!important}

/* Squad substitutions */
.franchise-squad-slot-polish{display:flex;flex-direction:column}.franchise-sub-control{margin-top:auto;padding-top:12px;border-top:1px solid #29415e}.franchise-sub-control>label{display:block;margin-bottom:6px;font-size:9px;font-weight:900;letter-spacing:.12em;color:#79aef1}.franchise-sub-control>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px}.franchise-sub-control select{min-width:0;width:100%;height:38px;padding:0 9px;border:1px solid #385572;border-radius:6px;background:#0b1728;color:#dce9f8;font-size:11px;outline:none}.franchise-sub-control select:focus{border-color:#75aaf0;box-shadow:0 0 0 2px rgba(90,150,235,.12)}.franchise-sub-control button{min-height:38px!important;padding:7px 11px!important;background:linear-gradient(135deg,#234b7e,#2d6ebd)!important;border-color:#588fd0!important;font-size:9px!important}.franchise-release-compact{margin-top:8px;min-height:34px!important;padding:6px 10px!important;font-size:9px!important}.franchise-reserve-heading{margin-top:24px}.franchise-reserve-card{display:flex;flex-direction:column}.franchise-sub-empty{margin-top:auto;padding-top:10px;border-top:1px solid #29415e;color:#71859f;font-size:10px}

/* Representative cards: no fake crest/letter circle, just identity and record. */
.franchise-rep-release .franchise-rep-mark{display:none!important}.franchise-rep-record-clean{margin-top:auto!important}.franchise-rep-record-clean strong{font-size:24px}.franchise-rep-arl{background:radial-gradient(circle at 78% 12%,rgba(225,28,45,.28),transparent 34%),linear-gradient(145deg,#07090d,#16090c 72%,#3b0c12)!important;border-color:#e52b39!important}.franchise-rep-yorkshire{background:radial-gradient(circle at 82% 12%,rgba(255,255,255,.9),transparent 30%),linear-gradient(145deg,#fff,#e7edf5)!important;border-color:#f8fafc!important}.franchise-rep-lancashire{background:radial-gradient(circle at 80% 10%,rgba(255,100,110,.28),transparent 34%),linear-gradient(145deg,#7d0912,#c81725)!important;border-color:#ff4854!important}.franchise-rep-release{box-shadow:0 18px 42px -30px #000,inset 0 1px rgba(255,255,255,.14)!important}.franchise-rep-shine{opacity:.8!important}

/* Recent form belongs under next match. */
.franchise-home-recent-form{margin-top:16px;padding-top:12px;border-top:1px solid #2a4059}.franchise-home-recent-form>span{display:block;margin-bottom:7px;font-size:9px;font-weight:900;letter-spacing:.13em;color:#78a9e9}.franchise-home-recent-form .franchise-form{justify-content:flex-start}

/* Match possession bars: force the actual team-theme variables through. */
.franchise-possession-track{background:linear-gradient(to right,var(--home-col,var(--match-home)) 0,var(--home-col,var(--match-home)) calc(var(--home-pos) - .4%),#dce7f3 var(--home-pos),var(--away-col,var(--match-away)) calc(var(--home-pos) + .4%),var(--away-col,var(--match-away)) 100%)!important}

@media(max-width:760px){.franchise-sub-control>div{grid-template-columns:1fr}.franchise-sub-control button{width:100%}.franchise-shell:has(.franchise-rolling) .franchise-workspace>.franchise-panel{min-height:220px}.franchise-rolling{min-height:140px}.franchise-options{grid-template-columns:1fr!important}}
@media(prefers-reduced-motion:reduce){.franchise-rolling:before,.franchise-rolling:after{animation:none!important}}
\n\n

/* 2.1.1 header badge breathing room */
.franchise-shell .franchise-header {
    padding-left:12px;
}

/* =========================================================================
   FIXTURE RESULTS — LEFT/RIGHT COLUMN ALIGNMENT ONLY
   Keep the original full-width 1fr / score / 1fr layout.
   Standardise badge + name placement inside each side.
   ========================================================================= */
.franchise-shell .franchise-fixture-list .franchise-score-row {
    grid-template-columns: minmax(0,1fr) auto minmax(0,1fr) !important;
    justify-content: stretch !important;
    column-gap: 16px !important;
}

.franchise-shell .franchise-fixture-list .franchise-score-row > span:first-child,
.franchise-shell .franchise-fixture-list .franchise-score-row > span:last-of-type {
    display: grid !important;
    align-items: center !important;
    column-gap: 8px !important;
}

/* Left: badge column, then name/details. */
.franchise-shell .franchise-fixture-list .franchise-score-row > span:first-child {
    grid-template-columns: 28px minmax(0,1fr) !important;
    text-align: left !important;
}

/* Right: keep the whole badge/name block pinned to the right,
   but make its badge and text columns identical on every row. */
.franchise-shell .franchise-fixture-list .franchise-score-row > span:last-of-type {
    grid-template-columns: 180px 28px !important;
    justify-content: end !important;
    text-align: right !important;
}
.franchise-shell .franchise-fixture-list .franchise-score-row > span:last-of-type .franchise-team-badge {
    grid-column: 2 !important;
    grid-row: 1 / span 2 !important;
    justify-self: end !important;
    margin: 0 !important;
}
.franchise-shell .franchise-fixture-list .franchise-score-row > span:last-of-type small {
    grid-column: 1 !important;
    display: block !important;
    text-align: right !important;
}

.franchise-shell .franchise-fixture-list .franchise-score-row .franchise-team-badge {
    width: 28px !important;
    min-width: 28px !important;
    max-width: 28px !important;
    height: 32px !important;
    margin: 0 !important;
    justify-self: start !important;
}

@media (max-width:650px) {
    .franchise-shell .franchise-fixture-list .franchise-score-row {
        column-gap:8px !important;
    }
    .franchise-shell .franchise-fixture-list .franchise-score-row > span:last-of-type {
        grid-template-columns:28px minmax(0,1fr) !important;
    }
}

/* Franchise header: restore breathing room around the top UF badge. */
.franchise-shell .franchise-header {
    padding-left: 20px !important;
}

/* Round Results text-format match ONLY:
   keep left badge outside, with team name + DIV/Season stacked beside it,
   mirroring the existing right-side format. */
.franchise-shell .franchise-fixture-list .franchise-score-row > span:first-child .franchise-team-badge {
    grid-column: 1 !important;
    grid-row: 1 / span 2 !important;
}
.franchise-shell .franchise-fixture-list .franchise-score-row > span:first-child > strong {
    grid-column: 2 !important;
    grid-row: 1 !important;
}
.franchise-shell .franchise-fixture-list .franchise-score-row > span:first-child > small {
    grid-column: 2 !important;
    grid-row: 2 !important;
    display: block !important;
    text-align: left !important;
    white-space: nowrap !important;
}

/* =========================================================================
   UNR NEWSROOM — bulletin presentation
   ========================================================================= */
.franchise-shell .franchise-news,
.franchise-shell .franchise-home-news{
    position:relative;
    overflow:hidden;
}
.franchise-shell .franchise-news::before,
.franchise-shell .franchise-home-news::before{
    content:"";
    display:block;
    height:3px;
    margin:-1px -1px 18px;
    background:linear-gradient(90deg,#5ba7ff 0 18%,#8f70ff 42%,rgba(91,167,255,0) 82%);
}
.franchise-shell .franchise-news .franchise-section-title,
.franchise-shell .franchise-home-news .franchise-section-title{
    align-items:end;
    gap:18px;
    margin-bottom:14px;
    padding-bottom:14px;
    border-bottom:1px solid rgba(137,177,232,.18);
}
.franchise-shell .franchise-news .franchise-section-title h3,
.franchise-shell .franchise-home-news .franchise-section-title h3{
    letter-spacing:.035em;
}
.franchise-shell .franchise-news .franchise-section-title > span,
.franchise-shell .franchise-home-news .franchise-section-title > span{
    letter-spacing:.12em;
    opacity:.8;
}
.franchise-shell .franchise-news article,
.franchise-shell .franchise-home-news-feed article{
    position:relative;
    display:grid;
    grid-template-columns:112px minmax(0,1fr) 142px;
    column-gap:20px;
    row-gap:6px;
    align-items:start;
    padding:18px 14px;
    border-bottom:1px solid rgba(137,177,232,.14);
    transition:background .18s ease,transform .18s ease;
}
.franchise-shell .franchise-news article:last-child,
.franchise-shell .franchise-home-news-feed article:last-child{
    border-bottom:0;
}
.franchise-shell .franchise-news article:hover,
.franchise-shell .franchise-home-news-feed article:hover{
    background:rgba(72,126,201,.08);
}
.franchise-shell .franchise-news-category{
    display:inline-flex;
    width:max-content;
    max-width:100%;
    align-items:center;
    min-height:22px;
    padding:4px 8px;
    border:1px solid rgba(105,165,255,.3);
    border-radius:4px;
    background:rgba(64,126,218,.12);
    color:#7fb8ff;
    font-size:9px;
    line-height:1.15;
    font-weight:800;
    letter-spacing:.11em;
    text-transform:uppercase;
}
.franchise-shell .franchise-news-story-copy,
.franchise-shell .franchise-home-news-feed .franchise-news-copy{
    grid-column:2;
    min-width:0;
}
.franchise-shell .franchise-news article p,
.franchise-shell .franchise-home-news-feed p{
    margin:0;
    color:#f5f8ff;
    font-size:15px;
    line-height:1.35;
    font-weight:750;
    letter-spacing:-.01em;
}
.franchise-shell .franchise-news-deck{
    display:block;
    max-width:820px;
    margin-top:7px;
    color:rgba(222,234,250,.74);
    font-size:12px;
    line-height:1.55;
    font-weight:450;
}
.franchise-shell .franchise-news article small{
    display:block;
    margin-top:9px;
    color:rgba(151,185,229,.62);
    font-size:9px;
    line-height:1;
    letter-spacing:.08em;
    text-transform:uppercase;
}
.franchise-shell .franchise-home-news-feed{
    display:grid;
}
.franchise-shell .franchise-home-news-feed article small{
    grid-column:3;
    grid-row:1 / span 2;
    padding-top:5px;
    color:rgba(151,185,229,.62);
    font-size:9px;
    line-height:1.2;
    letter-spacing:.06em;
    text-align:right;
    text-transform:uppercase;
    white-space:nowrap;
}
.franchise-shell .franchise-home-news-feed article.is-lead-story{
    padding-block:22px;
    background:linear-gradient(90deg,rgba(50,113,205,.16),rgba(79,63,171,.08) 58%,transparent);
}
.franchise-shell .franchise-home-news-feed article.is-lead-story::before{
    content:"TOP STORY";
    position:absolute;
    top:0;
    left:14px;
    color:#87bdff;
    font-size:7px;
    font-weight:900;
    letter-spacing:.14em;
}
.franchise-shell .franchise-home-news-feed article.is-lead-story p{
    font-size:17px;
}
.franchise-shell .franchise-news-match .franchise-news-category{border-color:rgba(83,180,255,.38);background:rgba(38,132,218,.14)}
.franchise-shell .franchise-news-player .franchise-news-category{border-color:rgba(132,113,255,.42);background:rgba(104,78,219,.15);color:#b7a9ff}
.franchise-shell .franchise-news-upset .franchise-news-category{border-color:rgba(255,184,76,.42);background:rgba(202,128,27,.13);color:#ffd08a}
.franchise-shell .franchise-news-playoff-race .franchise-news-category{border-color:rgba(80,220,185,.38);background:rgba(31,164,132,.12);color:#83e7ce}
.franchise-shell .franchise-news-table .franchise-news-category{border-color:rgba(99,153,255,.34);background:rgba(55,100,190,.13)}
.franchise-shell .franchise-news-form .franchise-news-category{border-color:rgba(226,112,255,.34);background:rgba(170,70,196,.12);color:#e6a3ff}

@media(max-width:720px){
    .franchise-shell .franchise-news article,
    .franchise-shell .franchise-home-news-feed article{
        grid-template-columns:1fr auto;
        gap:8px 10px;
        padding:16px 4px;
    }
    .franchise-shell .franchise-news-category{grid-column:1;grid-row:1}
    .franchise-shell .franchise-news-story-copy,
    .franchise-shell .franchise-home-news-feed .franchise-news-copy{
        grid-column:1 / -1;
        grid-row:2;
    }
    .franchise-shell .franchise-home-news-feed article small{
        grid-column:2;
        grid-row:1;
        padding-top:5px;
    }
    .franchise-shell .franchise-news article p,
    .franchise-shell .franchise-home-news-feed p{font-size:14px}
    .franchise-shell .franchise-home-news-feed article.is-lead-story p{font-size:16px}
}


/* NEWS ECOSYSTEM — front page + archive */
.franchise-news-filters{display:flex;gap:7px;flex-wrap:wrap;margin:0 0 16px;padding-bottom:14px;border-bottom:1px solid rgba(137,177,232,.16)}
.franchise-news-filters button{border:1px solid rgba(116,157,214,.22);background:rgba(19,34,56,.5);color:rgba(205,221,243,.68);padding:7px 10px;border-radius:4px;font-size:9px;font-weight:800;letter-spacing:.08em}
.franchise-news-filters button.is-active{color:#fff;border-color:rgba(95,169,255,.58);background:rgba(57,121,210,.2)}
.franchise-news-story[hidden]{display:none!important}
.franchise-news-frontpage{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);border:1px solid rgba(132,171,224,.16);background:linear-gradient(135deg,rgba(32,63,104,.22),rgba(14,24,39,.22))}
.franchise-news-lead{padding:22px;border-right:1px solid rgba(132,171,224,.16)}
.franchise-news-lead>span{display:block;color:#79b7ff;font-size:8px;font-weight:900;letter-spacing:.16em;margin-bottom:10px}
.franchise-news-lead article{display:block!important;padding:0!important;border:0!important;background:none!important}
.franchise-news-lead .franchise-news-category{margin-bottom:12px}
.franchise-news-lead p{font-size:22px!important;line-height:1.2!important;max-width:720px}
.franchise-news-lead .franchise-news-deck{font-size:12px;max-width:680px}
.franchise-news-lead small{display:block;margin-top:14px;color:rgba(151,185,229,.58);font-size:9px;text-transform:uppercase}
.franchise-news-major{display:grid}
.franchise-news-major article{grid-template-columns:92px minmax(0,1fr)!important;padding:16px!important}
.franchise-news-major article small{display:block!important;margin-top:8px;text-align:left!important}
.franchise-news-briefs{margin-top:12px;padding:14px 16px;border-top:1px solid rgba(132,171,224,.18);border-bottom:1px solid rgba(132,171,224,.18)}
.franchise-news-briefs>strong{display:block;margin-bottom:8px;color:#84baff;font-size:9px;letter-spacing:.13em}
.franchise-news-briefs>div{display:grid;grid-template-columns:92px 1fr;gap:12px;padding:8px 0;border-top:1px solid rgba(132,171,224,.1)}
.franchise-news-briefs>div span{font-size:8px;font-weight:800;color:rgba(150,190,239,.7)}
.franchise-news-briefs p{margin:0!important;font-size:12px!important;font-weight:600!important}
.franchise-news-breaking .franchise-news-category{color:#ffd493!important;border-color:rgba(255,185,78,.45)!important;background:rgba(211,129,27,.14)!important}
.franchise-news-transfers .franchise-news-category{color:#8ce6d0!important;border-color:rgba(80,220,185,.38)!important;background:rgba(31,164,132,.12)!important}
.franchise-news-preview .franchise-news-category{color:#c5b4ff!important;border-color:rgba(153,126,255,.38)!important;background:rgba(112,82,215,.13)!important}
.franchise-news-records .franchise-news-category,.franchise-news-milestone .franchise-news-category{color:#ffd98f!important;border-color:rgba(241,185,81,.38)!important;background:rgba(182,126,32,.12)!important}
@media(max-width:800px){.franchise-news-frontpage{grid-template-columns:1fr}.franchise-news-lead{border-right:0;border-bottom:1px solid rgba(132,171,224,.16)}.franchise-news-lead p{font-size:19px!important}}


/* COMPACT LATEST NEWS — Home newsroom */
.franchise-home-news.franchise-latest-news{
    margin-top:16px;
    border:1px solid rgba(93,151,215,.28);
    border-radius:7px;
    background:linear-gradient(180deg,rgba(7,23,40,.96),rgba(6,19,34,.96));
    overflow:hidden;
    box-shadow:0 10px 28px rgba(0,0,0,.16);
}
.franchise-latest-news::before{display:none!important}
.franchise-latest-news-header{
    min-height:42px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    padding:0 14px;
    border-bottom:1px solid rgba(113,160,214,.18);
}
.franchise-latest-news-header h3{
    margin:0;
    color:#dcecff;
    font-size:11px;
    line-height:1;
    font-weight:900;
    letter-spacing:.09em;
}
.franchise-latest-news-header button{
    border:0;
    background:transparent;
    color:#6fb5ff;
    padding:8px 0;
    font-size:9px;
    font-weight:800;
    letter-spacing:.02em;
    cursor:pointer;
}
.franchise-latest-news-header button:hover{color:#fff}
.franchise-latest-news-header button span{margin-left:4px}
.franchise-latest-news-list{padding:2px 12px 7px}
.franchise-latest-news-row{
    display:grid!important;
    grid-template-columns:82px minmax(0,1fr) 88px!important;
    align-items:center!important;
    gap:10px!important;
    min-height:35px;
    padding:6px 0!important;
    margin:0!important;
    border:0!important;
    border-bottom:1px solid rgba(112,154,204,.12)!important;
    background:transparent!important;
}
.franchise-latest-news-row:last-child{border-bottom:0!important}
.franchise-latest-news-row .franchise-news-category{
    justify-self:start;
    margin:0!important;
    padding:3px 7px!important;
    border-radius:3px!important;
    font-size:7px!important;
    line-height:1!important;
    letter-spacing:.11em!important;
    white-space:nowrap;
}
.franchise-latest-news-copy{
    min-width:0;
    display:flex;
    align-items:baseline;
    gap:10px;
}
.franchise-latest-news-copy strong{
    flex:0 1 auto;
    color:#f4f8ff;
    font-size:10px;
    line-height:1.25;
    font-weight:750;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}
.franchise-latest-news-copy>span{
    min-width:0;
    color:rgba(176,199,226,.62);
    font-size:8px;
    line-height:1.25;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}
.franchise-latest-news-row>small{
    justify-self:end;
    margin:0!important;
    color:rgba(133,168,208,.56)!important;
    font-size:7px!important;
    line-height:1!important;
    letter-spacing:.04em!important;
    white-space:nowrap;
    text-transform:uppercase;
}
.franchise-latest-news-empty{
    padding:20px 4px;
    color:rgba(170,194,222,.6);
    font-size:10px;
}
@media(max-width:720px){
    .franchise-latest-news-row{
        grid-template-columns:72px minmax(0,1fr)!important;
        gap:8px!important;
        padding:8px 0!important;
    }
    .franchise-latest-news-copy{display:block}
    .franchise-latest-news-copy strong{display:block;white-space:normal}
    .franchise-latest-news-copy>span{display:none}
    .franchise-latest-news-row>small{display:none!important}
}


/* LATEST NEWS FINAL — readable, vibrant, compact */
.franchise-home-news.franchise-latest-news{
    margin-top:18px!important;
    border:1px solid rgba(71,157,239,.42)!important;
    border-radius:10px!important;
    background:
        radial-gradient(circle at 92% -20%,rgba(53,121,224,.18),transparent 34%),
        linear-gradient(180deg,rgba(8,27,48,.98),rgba(5,19,35,.98))!important;
    box-shadow:0 16px 38px rgba(0,0,0,.22),inset 0 1px rgba(129,190,255,.05)!important;
}
.franchise-latest-news-header{
    min-height:52px!important;
    padding:0 18px!important;
    border-bottom:1px solid rgba(106,169,230,.22)!important;
    background:linear-gradient(90deg,rgba(39,104,175,.12),transparent 48%)!important;
}
.franchise-latest-news-header h3{
    color:#f2f8ff!important;
    font-size:13px!important;
    font-weight:900!important;
    letter-spacing:.11em!important;
}
.franchise-latest-news-header>span{
    color:#65b7ff;
    font-size:9px;
    font-weight:850;
    letter-spacing:.13em;
}
.franchise-latest-news-list{padding:4px 16px 9px!important}
.franchise-latest-news-row{
    grid-template-columns:104px minmax(0,1fr) 105px!important;
    gap:14px!important;
    min-height:52px!important;
    padding:9px 2px!important;
    border-bottom:1px solid rgba(117,164,211,.14)!important;
    transition:background .16s ease,transform .16s ease;
}
.franchise-latest-news-row:hover{
    background:linear-gradient(90deg,rgba(53,126,211,.08),transparent)!important;
}
.franchise-latest-news-row .franchise-news-category{
    min-width:72px;
    justify-content:center!important;
    padding:5px 8px!important;
    border-radius:4px!important;
    font-size:8px!important;
    font-weight:900!important;
    letter-spacing:.12em!important;
}
.franchise-latest-news-copy{
    display:grid!important;
    grid-template-columns:minmax(230px,.7fr) minmax(0,1.3fr);
    align-items:center!important;
    gap:18px!important;
}
.franchise-latest-news-copy strong{
    color:#f7fbff!important;
    font-size:12px!important;
    line-height:1.35!important;
    font-weight:800!important;
    white-space:normal!important;
    overflow:visible!important;
}
.franchise-latest-news-copy>span{
    color:rgba(167,203,237,.76)!important;
    font-size:10px!important;
    line-height:1.45!important;
    white-space:normal!important;
    overflow:visible!important;
}
.franchise-latest-news-row>small{
    color:rgba(113,176,234,.72)!important;
    font-size:8px!important;
    font-weight:750!important;
    letter-spacing:.06em!important;
}
.franchise-news-match .franchise-news-category{color:#7fc6ff!important;border-color:#2d7dc1!important;background:#0e3b642e!important}
.franchise-news-table .franchise-news-category,.franchise-news-league .franchise-news-category{color:#72e7c0!important;border-color:#218c72!important;background:#0c5c482e!important}
.franchise-news-players .franchise-news-category,.franchise-news-player .franchise-news-category{color:#bca5ff!important;border-color:#7155d1!important;background:#422c8a2e!important}
.franchise-news-milestone .franchise-news-category,.franchise-news-records .franchise-news-category{color:#ffd16f!important;border-color:#b77a19!important;background:#80500e30!important}
.franchise-news-transfer .franchise-news-category,.franchise-news-transfers .franchise-news-category,.franchise-news-free-agent .franchise-news-category{color:#7eead4!important;border-color:#258f7b!important;background:#0d5b4e2e!important}
.franchise-news-preview .franchise-news-category,.franchise-news-playoffs .franchise-news-category{color:#8fdcff!important;border-color:#367fa4!important;background:#1652702e!important}
.franchise-news-form .franchise-news-category{color:#ff9bd3!important;border-color:#a6437b!important;background:#72234f2e!important}
.franchise-news-breaking .franchise-news-category{color:#ff9b8c!important;border-color:#b64d3f!important;background:#7c2c222e!important}

@media(max-width:900px){
    .franchise-latest-news-copy{grid-template-columns:1fr!important;gap:4px!important}
}
@media(max-width:650px){
    .franchise-latest-news-header>span{display:none}
    .franchise-latest-news-row{grid-template-columns:82px minmax(0,1fr)!important;min-height:58px!important}
    .franchise-latest-news-copy strong{font-size:11px!important}
    .franchise-latest-news-copy>span{font-size:9px!important;display:block!important}
    .franchise-latest-news-row>small{display:none!important}
}

/* =========================================================================
   V2.1.1 MOBILE FORMAT REPAIR
   Presentation only. Desktop remains unchanged.
   ========================================================================= */
@media (max-width:650px) {
    /* Keep the Franchise shell genuinely inside the phone viewport. */
    .franchise-shell { width:100% !important; max-width:100% !important; overflow:hidden !important; }

    /* Navigation is a deliberate swipe row on phones, not clipped desktop tabs. */
    .franchise-shell .franchise-nav,
    .franchise-shell .franchise-nav-logical {
        display:flex !important;
        grid-template-columns:none !important;
        flex-wrap:nowrap !important;
        gap:0 !important;
        overflow-x:auto !important;
        overflow-y:hidden !important;
        scroll-snap-type:x proximity;
        scrollbar-width:none;
        -webkit-overflow-scrolling:touch;
    }
    .franchise-shell .franchise-nav::-webkit-scrollbar,
    .franchise-shell .franchise-nav-logical::-webkit-scrollbar { display:none; }
    .franchise-shell .franchise-nav button,
    .franchise-shell .franchise-nav-logical button {
        flex:0 0 112px !important;
        width:112px !important;
        min-width:112px !important;
        scroll-snap-align:start;
        overflow-wrap:normal !important;
        word-break:normal !important;
    }

    /* League table: phone-specific compact table, no sideways hunt for columns. */
    .franchise-shell .franchise-league-scroll {
        width:100% !important;
        max-width:100% !important;
        overflow-x:hidden !important;
    }
    .franchise-shell .franchise-league-table {
        width:100% !important;
        min-width:0 !important;
        table-layout:fixed !important;
        font-size:9px !important;
    }
    .franchise-shell .franchise-league-table caption {
        width:100% !important;
        padding:8px 7px !important;
        font-size:9px !important;
        line-height:1.35 !important;
        white-space:normal !important;
        overflow-wrap:normal !important;
    }
    .franchise-shell .franchise-league-table :is(th,td) {
        min-width:0 !important;
        width:auto !important;
        height:44px !important;
        padding:6px 2px !important;
        font-size:9px !important;
        text-align:center !important;
        white-space:nowrap !important;
        overflow:hidden !important;
        text-overflow:clip !important;
    }
    .franchise-shell .franchise-league-table thead th { font-size:8px !important; }
    .franchise-shell .franchise-league-table td:first-child { width:24px !important; min-width:24px !important; }
    .franchise-shell .franchise-league-table th:nth-child(1) { width:24px !important; }
    .franchise-shell .franchise-league-table th:nth-child(2) { width:118px !important; }
    .franchise-shell .franchise-league-table th[scope="row"] {
        width:118px !important;
        min-width:0 !important;
        left:auto !important;
        padding-inline:5px !important;
        text-align:left !important;
        white-space:normal !important;
        line-height:1.15 !important;
        overflow-wrap:normal !important;
        word-break:normal !important;
    }
    .franchise-shell .franchise-league-table .franchise-team-badge {
        width:26px !important;
        min-width:26px !important;
        height:30px !important;
        font-size:8px !important;
    }
    .franchise-shell .franchise-league-table .franchise-your-club {
        display:block !important;
        margin-top:3px !important;
        font-size:7px !important;
        letter-spacing:.04em !important;
    }
    /* PD + FORM are useful on desktop but are the two least essential phone columns. */
    .franchise-shell .franchise-league-table :is(th,td):nth-child(9),
    .franchise-shell .franchise-league-table :is(th,td):nth-child(11) { display:none !important; }

    /* Round results: preserve badge/name/score structure without crushing names vertically. */
    .franchise-shell .franchise-fixture-list .franchise-score-row {
        grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) !important;
        column-gap:7px !important;
        align-items:center !important;
        padding-inline:8px !important;
    }
    .franchise-shell .franchise-fixture-list .franchise-score-row > span:first-child {
        grid-template-columns:26px minmax(0,1fr) !important;
        min-width:0 !important;
    }
    .franchise-shell .franchise-fixture-list .franchise-score-row > span:last-of-type {
        grid-template-columns:minmax(0,1fr) 26px !important;
        min-width:0 !important;
        justify-content:stretch !important;
    }
    .franchise-shell .franchise-fixture-list .franchise-score-row > span :is(strong,small) {
        min-width:0 !important;
        white-space:normal !important;
        overflow-wrap:normal !important;
        word-break:normal !important;
        hyphens:none !important;
    }
    .franchise-shell .franchise-fixture-list .franchise-score-row > span strong {
        font-size:11px !important;
        line-height:1.2 !important;
    }
    .franchise-shell .franchise-fixture-list .franchise-score-row > span small {
        font-size:8px !important;
        line-height:1.25 !important;
    }
    .franchise-shell .franchise-fixture-list .franchise-score-row > strong {
        white-space:nowrap !important;
        font-size:18px !important;
    }
    .franchise-shell .franchise-fixture-list .franchise-score-row .franchise-team-badge {
        width:26px !important; min-width:26px !important; max-width:26px !important; height:30px !important;
    }

    /* Player cards: same design, phone proportions. */
    .franchise-shell .franchise-matchday-slot,
    .franchise-shell .franchise-trade-grid > *,
    .franchise-shell .franchise-scout-target,
    .franchise-shell .franchise-training-card {
        padding:10px !important;
    }
    .franchise-shell .franchise-player-card {
        padding:10px 11px !important;
        min-height:0 !important;
        height:auto !important;
    }
    .franchise-shell .franchise-player-top { gap:8px !important; align-items:center !important; }
    .franchise-shell .franchise-rating {
        min-width:50px !important;
        padding:6px 8px !important;
        font-size:27px !important;
    }
    .franchise-shell .franchise-player-identity strong { font-size:15px !important; line-height:1.15 !important; }
    .franchise-shell .franchise-player-identity span { font-size:10px !important; }
    .franchise-shell .franchise-player-value { margin:8px 0 6px !important; font-size:15px !important; }
    .franchise-shell .franchise-player-origin { padding-top:6px !important; font-size:10px !important; line-height:1.35 !important; }
    .franchise-shell .franchise-player-origin span { font-size:9px !important; }
    .franchise-shell .franchise-fitness { margin-top:7px !important; }
    .franchise-shell .franchise-xp { margin-top:6px !important; }
    .franchise-shell .franchise-profile-open { padding:7px 0 !important; margin:2px 0 !important; min-height:38px !important; }
    .franchise-shell .franchise-mini-actions { margin-top:6px !important; }
    .franchise-shell .franchise-position { margin-bottom:7px !important; }

    /* Trade selection cards should read like a list, not one full screen per player. */
    .franchise-shell .franchise-trade-grid { gap:10px !important; }
    .franchise-shell .franchise-trade-grid > button,
    .franchise-shell .franchise-trade-grid > article { min-height:0 !important; height:auto !important; }
}
