#ffd2-app.ffd2-app{--bg:#0a0d12;--panel:#11161d;--panel2:#171d26;--border:#27303b;--text:#f5f7fa;--muted:#8994a3;--accent:#66e3a4;--danger:#ff6675;color:var(--text);background:var(--bg);border-radius:18px;padding:24px;font-family:Inter,system-ui,sans-serif;max-width:1800px;margin:20px auto;box-sizing:border-box}.ffd2-app *{box-sizing:border-box}.ffd2-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.ffd2-header h1{margin:4px 0;font-size:28px}.ffd2-header p{margin:0;color:var(--muted);font-size:13px}.ffd2-header p span{margin:0 6px}.ffd2-kicker,.ffd2-label{font-size:10px;letter-spacing:.13em;font-weight:800;color:var(--muted);text-transform:uppercase}.ffd2-user-badge{background:#171d26;border:1px solid var(--border);padding:8px 11px;border-radius:999px;font-size:11px}.ffd2-status{display:grid;grid-template-columns:150px 1fr 150px;gap:12px;margin-bottom:12px}.ffd2-status-card,.ffd2-clock-card{background:var(--panel);border:1px solid var(--border);border-radius:12px;min-height:72px;padding:12px 16px}.ffd2-status-card{display:flex;flex-direction:column;justify-content:center}.ffd2-status-card strong{font-size:22px}.ffd2-clock-card{display:flex;align-items:center;gap:12px;border-color:#355b49}.ffd2-clock-copy{flex:1}.ffd2-clock-copy strong{display:block;font-size:19px}.ffd2-live-dot{width:10px;height:10px;background:var(--accent);border-radius:50%;box-shadow:0 0 0 5px rgba(102,227,164,.1)}.ffd2-timer{font-size:30px;font-weight:900;font-variant-numeric:tabular-nums}.ffd2-banner{background:#3d2e14;border:1px solid #755620;color:#ffd98b;padding:10px 14px;border-radius:10px;margin-bottom:12px;font-weight:800}.ffd2-layout{display:grid;grid-template-columns:300px minmax(0,1fr) 285px;gap:14px}.ffd2-panel{background:var(--panel);border:1px solid var(--border);border-radius:14px;overflow:hidden}.ffd2-panel-heading{display:flex;justify-content:space-between;align-items:center;padding:15px;border-bottom:1px solid var(--border)}.ffd2-panel-heading h2{margin:3px 0 0;font-size:16px}.ffd2-count{background:#1d2630;padding:4px 8px;border-radius:999px;color:#aeb8c6;font-size:11px;font-weight:800}.ffd2-search,.ffd2-team-select{width:calc(100% - 24px);margin:12px;background:#0b1016;color:#fff;border:1px solid var(--border);border-radius:8px;padding:10px}.ffd2-filters{display:flex;flex-wrap:wrap;gap:5px;padding:0 12px 12px}.ffd2-filter{background:#151b23;color:#8994a3;border:1px solid var(--border);border-radius:6px;padding:5px 7px;font-size:9px;font-weight:800;cursor:pointer}.ffd2-filter.active{background:#29333f;color:#fff}.ffd2-filter.punishment{color:#ff9aa4}.ffd2-player-list{max-height:680px;overflow:auto;padding:0 8px 8px}.ffd2-player{display:flex;align-items:center;gap:10px;width:100%;background:transparent;border:0;border-bottom:1px solid #1d242d;color:#fff;padding:9px 5px;text-align:left;cursor:pointer}.ffd2-player:hover,.ffd2-player.selected{background:#171e27}.ffd2-player .badge{width:32px;height:32px;border-radius:7px;background:#202934;display:grid;place-items:center;font-size:9px;font-weight:900}.ffd2-player>span:nth-child(2){flex:1}.ffd2-player strong{display:block;font-size:12px}.ffd2-player small{display:block;color:var(--muted);font-size:10px}.ffd2-player i{font-size:20px;color:#596574}.ffd2-player.punish strong{color:#ff9aa4}.ffd2-confirm-bar{display:flex;justify-content:space-between;align-items:center;padding:10px 15px;border-bottom:1px solid var(--border);background:#0e1319}.ffd2-confirm-bar strong{display:block;margin-top:3px}.ffd2-primary{background:var(--accent);color:#07150e;border:0;border-radius:8px;padding:10px 14px;font-weight:900;cursor:pointer}.ffd2-primary:disabled{opacity:.35;cursor:not-allowed}.ffd2-board-wrap{max-height:770px;overflow:auto}.ffd2-board{border-collapse:separate;border-spacing:0;min-width:1080px;width:100%;font-size:10px}.ffd2-board th{position:sticky;top:0;background:#151b23;color:#aeb8c6;padding:9px 6px;border-bottom:1px solid var(--border);z-index:3}.ffd2-board thead th:first-child{left:0;z-index:5}.ffd2-board tbody th{position:sticky;left:0;z-index:2}.ffd2-cell{width:75px;min-width:75px;height:64px;background:#0e1319;border-right:1px solid #1e2630;border-bottom:1px solid #1e2630;padding:5px;vertical-align:top}.ffd2-cell.current{background:rgba(102,227,164,.09);box-shadow:inset 0 0 0 2px var(--accent)}.ffd2-cell.filled{background:#151c24}.ffd2-pn{display:block;color:#505c6b;font-size:8px;margin-bottom:5px}.ffd2-cell strong{display:block;font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ffd2-cell small{display:block;color:#758191;font-size:8px;margin-top:3px}.ffd2-cell .special,.ffd2-roster-slot .special{color:#ff8d98}.ffd2-cell .empty{color:#2d3743;font-size:18px}.ffd2-roster{padding:8px}.ffd2-roster-slot{min-height:45px;border-bottom:1px solid #1d242d;display:flex;align-items:center;gap:9px}.ffd2-roster-slot>span{width:24px;text-align:center;color:#566171;font-size:10px}.ffd2-roster-slot strong{display:block;font-size:11px}.ffd2-roster-slot small{display:block;color:#727e8d;font-size:9px}.ffd2-roster-slot.empty{color:#3e4854;font-size:10px}.ffd2-admin{margin:12px;border-top:1px solid var(--border);padding-top:14px}.ffd2-admin h3{margin:4px 0 10px}.ffd2-admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}.ffd2-admin button{background:#1b222c;color:#fff;border:1px solid var(--border);border-radius:7px;padding:8px;font-size:10px;cursor:pointer}.ffd2-admin button.danger{color:#ff9aa4}.ffd2-toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,20px);opacity:0;background:#eaf8f1;color:#0d2117;padding:10px 15px;border-radius:9px;font-size:12px;font-weight:800;transition:.2s;z-index:99999}.ffd2-toast.show{opacity:1;transform:translate(-50%,0)}.ffd2-empty{padding:25px 10px;text-align:center;color:#677382;font-size:11px}@media(max-width:1200px){.ffd2-layout{grid-template-columns:280px minmax(0,1fr)}.ffd2-layout>.ffd2-panel:last-child{grid-column:1/-1}}@media(max-width:760px){#ffd2-app.ffd2-app{padding:12px}.ffd2-status{grid-template-columns:1fr 1fr}.ffd2-clock-card{grid-column:1/-1;grid-row:1}.ffd2-layout{grid-template-columns:1fr}.ffd2-layout>.ffd2-panel:last-child{grid-column:auto}.ffd2-header h1{font-size:21px}}
.ffd2-player-tools{display:grid;grid-template-columns:1fr 135px;gap:8px;padding:12px}
.ffd2-player-tools .ffd2-search{width:100%;margin:0}
.ffd2-sort{width:100%;background:#0b1016;color:#fff;border:1px solid var(--border);border-radius:8px;padding:10px;font-size:10px}
.ffd2-player:disabled{opacity:.48;cursor:not-allowed}
.rank-stack{width:40px;flex:0 0 40px;text-align:center}
.rank-stack b{display:block;font-size:11px;color:#fff}
.rank-stack small{display:block;font-size:8px;color:#7f8a98;margin-top:2px}
.player-copy{min-width:0;flex:1}
.player-copy strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(max-width:760px){.ffd2-player-tools{grid-template-columns:1fr}}

/* Phase 3.0.1: smaller position badge in player pool */
.ffd2-player .badge{
    width:24px;
    height:24px;
    flex:0 0 24px;
    border-radius:5px;
    font-size:7px;
}

/* Phase 4 draft-day experience. The 24x24 player position badge is intentionally preserved. */
.ffd4-turn-status{margin:0 0 12px;padding:11px 14px;border-radius:10px;border:1px solid var(--border);background:#11161d;color:#aeb8c6;font-size:12px;font-weight:800;text-align:center}
.ffd4-turn-status.your-turn{border-color:#4b9d74;background:rgba(102,227,164,.11);color:#8ff0bd;box-shadow:0 0 0 1px rgba(102,227,164,.08)}
.ffd4-turn-status.paused{border-color:#755620;background:#3d2e14;color:#ffd98b}
.ffd4-turn-status.complete{border-color:#476176;background:#17222d;color:#b9d7ee}
.ffd4-turn-status.commissioner{border-color:#485666;color:#d6dde6}
.ffd4-recent{border-top:1px solid var(--border);margin-top:8px}
.ffd4-recent .ffd2-panel-heading{padding:12px 15px}
.ffd4-recent-picks{padding:5px 9px 10px;max-height:320px;overflow:auto}
.ffd4-feed-row{display:flex;align-items:center;gap:9px;min-height:43px;border-bottom:1px solid #1d242d;padding:5px}
.ffd4-feed-row:last-child{border-bottom:0}
.ffd4-feed-pick{width:34px;flex:0 0 34px;color:#657181;font-size:9px;font-weight:900}
.ffd4-feed-copy{min-width:0}
.ffd4-feed-copy strong{display:block;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ffd4-feed-copy small{display:block;color:#737f8e;font-size:8px;margin-top:2px}
.ffd4-feed-row.special strong{color:#ff8d98}
.ffd2-player .badge{width:24px;height:24px;flex:0 0 24px;border-radius:5px;font-size:7px}

/* Phase 4.1: recent picks moved above main draft area */
.ffd4-recent-top{background:var(--panel);border:1px solid var(--border);border-radius:12px;margin-bottom:14px;overflow:hidden}
.ffd4-recent-heading{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-bottom:1px solid var(--border)}
.ffd4-recent-heading h2{font-size:14px;margin:2px 0 0}
.ffd4-feed-note{font-size:9px;color:var(--muted)}
.ffd4-recent-top .ffd4-recent-picks{display:grid;grid-template-columns:repeat(8,minmax(110px,1fr));max-height:none;overflow-x:auto;padding:0}
.ffd4-recent-top .ffd4-feed-row{min-width:110px;border-bottom:0;border-right:1px solid #1d242d;padding:9px}
.ffd4-recent-top .ffd4-feed-row:last-child{border-right:0}

/* Phase 4.1 roster slots */
.ffd2-roster-slot>span.ffd4-slot-label{width:72px;flex:0 0 72px;text-align:left;padding-left:7px;color:#9ba6b4;font-size:10px;font-weight:900}
.ffd4-open-slot{color:#3e4854;font-size:10px}
.ffd4-bench-title{padding:14px 7px 6px;border-bottom:1px solid #1d242d}
.ffd2-roster-slot.bench{opacity:.9}
@media(max-width:1000px){
  .ffd4-recent-top .ffd4-recent-picks{grid-template-columns:repeat(8,130px)}
}

/* Phase 4.1.1: compact narrow position badge */
.ffd2-player .badge{
    width:18px;
    min-width:18px;
    height:24px;
    flex:0 0 18px;
    padding:0;
    border-radius:4px;
    font-size:6px;
}

/* Phase 4.1.4: player selection and confirmation live in Player Pool */
.ffd2-pool-confirm{
    margin:0 12px 10px;
    padding:10px;
    background:#0e1319;
    border:1px solid var(--border);
    border-radius:9px;
    display:flex;
    align-items:center;
    gap:8px;
}
.ffd2-pool-selection{
    min-width:0;
    flex:1;
}
.ffd2-pool-selection strong{
    display:block;
    margin-top:3px;
    font-size:11px;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}
.ffd2-pool-confirm .ffd2-primary{
    flex:0 0 auto;
    padding:8px 10px;
    font-size:10px;
}
.ffd2-board-panel .ffd2-panel-heading{
    min-height:61px;
}

/* Phase 4.1.5 layout: Player Pool | Team Roster | Draft Board */
.ffd2-players-panel{grid-area:players}
.ffd2-roster-panel{grid-area:roster}
.ffd2-board-panel{grid-area:board}

@media(max-width:1200px){
}

@media(max-width:760px){
}

/* Phase 4.2 sortable Player Pool columns */
.ffd2-player-tools{
    display:block;
    padding:12px;
}
.ffd2-player-tools .ffd2-search{
    width:100%;
    margin:0;
}
.ffd2-player-columns{
    display:grid;
    grid-template-columns:42px minmax(120px,1fr) 34px 48px 42px;
    gap:4px;
    align-items:center;
    padding:7px 10px;
    border-top:1px solid var(--border);
    border-bottom:1px solid var(--border);
    background:#151b23;
}
.ffd2-col-sort{
    appearance:none;
    border:0;
    background:transparent;
    color:#738090;
    padding:2px 0;
    text-align:left;
    font-size:8px;
    font-weight:900;
    letter-spacing:.04em;
    cursor:pointer;
    white-space:nowrap;
}
.ffd2-col-sort:hover,
.ffd2-col-sort.active{
    color:#fff;
}
.ffd2-col-sort span{
    font-size:6px;
    margin-left:2px;
}
.ffd2-player-table-row{
    display:grid;
    grid-template-columns:42px minmax(120px,1fr) 34px 48px 42px;
    gap:4px;
    align-items:center;
    min-height:38px;
    padding:5px 10px;
}
.ffd2-player-table-row .ffd2-cell-overall{
    font-size:9px;
    font-weight:900;
    color:#aeb8c6;
}
.ffd2-player-table-row .ffd2-cell-name{
    min-width:0;
}
.ffd2-player-table-row .ffd2-cell-name strong{
    display:block;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
    font-size:10px;
}
.ffd2-player-table-row .ffd2-cell-pos{
    display:flex;
    justify-content:flex-start;
}
.ffd2-player-table-row .ffd2-cell-posrank,
.ffd2-player-table-row .ffd2-cell-team{
    font-size:8px;
    color:#8d98a6;
    white-space:nowrap;
}
.ffd2-player-table-row .badge{
    width:18px;
    min-width:18px;
    height:20px;
    flex:0 0 18px;
    font-size:6px;
}
@media(max-width:420px){
    .ffd2-player-columns,
    .ffd2-player-table-row{
        grid-template-columns:38px minmax(105px,1fr) 30px 43px 38px;
        gap:3px;
        padding-left:7px;
        padding-right:7px;
    }
}

/* Phase 4.2.3: five Recent Picks tiles styled like draft-board cells */
.ffd4-recent-top .ffd4-recent-picks{
    display:grid;
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:8px;
    padding:10px;
    max-height:none;
    overflow:visible;
}
.ffd4-recent-tile{
    min-height:78px;
    padding:7px 8px;
    background:#0e1319;
    border:1px solid #1e2630;
    border-radius:7px;
    display:flex;
    flex-direction:column;
    justify-content:space-between;
}
.ffd4-recent-pn{
    display:block;
    color:#505c6b;
    font-size:8px;
    margin-bottom:4px;
}
.ffd4-recent-player{
    min-width:0;
}
.ffd4-recent-player strong{
    display:block;
    color:#f2f5f8;
    font-size:10px;
    line-height:1.2;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}
.ffd4-recent-player small{
    display:block;
    color:#758191;
    margin-top:3px;
    font-size:8px;
}
.ffd4-recent-team{
    margin-top:7px;
    padding-top:5px;
    border-top:1px solid #1d242d;
    color:#9aa5b3;
    font-size:8px;
    font-weight:800;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}
.ffd4-recent-tile.special .ffd4-recent-player strong{
    color:#ff8d98;
}
.ffd4-recent-empty{
    grid-column:1/-1;
    padding:15px;
    text-align:center;
    color:#677382;
    font-size:10px;
}
@media(max-width:900px){
    .ffd4-recent-top .ffd4-recent-picks{
        grid-template-columns:repeat(5,130px);
        overflow-x:auto;
    }
}

/* Phase 4.2.4: round.pick-in-round notation */
.ffd4-round-pick{
    display:inline-block;
    margin-left:5px;
    color:#8b97a6;
    font-size:8px;
    font-weight:900;
    letter-spacing:.02em;
}
.ffd4-recent-pick-meta{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:6px;
    margin-bottom:4px;
}
.ffd4-recent-pick-meta .ffd4-recent-pn{
    margin-bottom:0;
}
.ffd4-recent-pick-meta .ffd4-round-pick{
    margin-left:0;
    color:#a7b2c0;
}
/* Keep notation compact inside draft board tiles */
.ffd2-board .ffd4-round-pick,
.ffd2-board-grid .ffd4-round-pick{
    font-size:7px;
    margin-left:3px;
}

/* Phase 4.2.5: Recent Picks populate right-to-left over time.
   Oldest visible pick is left; newest pick is far right. */
.ffd4-recent-top .ffd4-recent-picks{
    direction:ltr;
}

/* Phase 4.2.6: position color coding for Draft Board and Recent Picks.
   Text/layout stay the same; only filled tile backgrounds/borders change. */

/* QB */
.ffd2-cell.filled.pos-qb,
.ffd4-recent-tile.pos-qb{
    background:#16324a;
    border-color:#285a7c;
}

/* RB */
.ffd2-cell.filled.pos-rb,
.ffd4-recent-tile.pos-rb{
    background:#173a2b;
    border-color:#2d6a4f;
}

/* WR */
.ffd2-cell.filled.pos-wr,
.ffd4-recent-tile.pos-wr{
    background:#402743;
    border-color:#744678;
}

/* TE */
.ffd2-cell.filled.pos-te,
.ffd4-recent-tile.pos-te{
    background:#4a321c;
    border-color:#80572f;
}

/* DEF / DST */
.ffd2-cell.filled.pos-def,
.ffd4-recent-tile.pos-def{
    background:#28323d;
    border-color:#506273;
}

/* K */
.ffd2-cell.filled.pos-k,
.ffd4-recent-tile.pos-k{
    background:#3b3820;
    border-color:#6c6638;
}

/* PUNISHMENT */
.ffd2-cell.filled.pos-punishment,
.ffd4-recent-tile.pos-punishment{
    background:#4a2027;
    border-color:#7f3844;
}

/* Fallback */
.ffd2-cell.filled.pos-other,
.ffd4-recent-tile.pos-other{
    background:#151c24;
    border-color:#2b3541;
}

/* Keep all text readable and consistent */
.ffd2-cell.filled[class*="pos-"] strong,
.ffd4-recent-tile[class*="pos-"] strong{
    color:#f5f7fa;
}
.ffd2-cell.filled[class*="pos-"] small,
.ffd4-recent-tile[class*="pos-"] small{
    color:#c2c9d1;
}
.ffd4-recent-tile[class*="pos-"] .ffd4-recent-team,
.ffd4-recent-tile[class*="pos-"] .ffd4-round-pick,
.ffd4-recent-tile[class*="pos-"] .ffd4-recent-pn{
    color:#c7ced6;
}
.ffd2-cell.filled.pos-punishment strong,
.ffd4-recent-tile.pos-punishment strong{
    color:#ffd5da;
}

/* Phase 4.2.7: NFL team filter in Player Pool */
.ffd2-player-tools{
    display:grid;
    grid-template-columns:minmax(0,1fr) 150px;
    gap:7px;
    align-items:center;
}
.ffd2-team-filter{
    width:100%;
    min-width:0;
    height:34px;
    padding:0 7px;
    border:1px solid var(--border);
    border-radius:7px;
    background:#0e1319;
    color:#d7dde5;
    font-size:9px;
}
@media(max-width:420px){
    .ffd2-player-tools{
        grid-template-columns:1fr;
    }
}

/* =========================================================
   PHASE 4.2.9 — AUTHORITATIVE MAIN LAYOUT
   This is the only layout definition that should be edited.
   ========================================================= */

.ffd2-layout,
body.admin-bar .ffd2-layout{
    display:grid;
    grid-template-columns:minmax(0,1.15fr) minmax(0,0.85fr);
    grid-template-areas:
        "players roster"
        "board board";
    gap:14px;
    align-items:start;
}

.ffd2-players-panel{
    grid-area:players;
}

.ffd2-roster-panel{
    grid-area:roster;
}

.ffd2-board-panel{
    grid-area:board;
    width:100%;
}

/* Top row sizing */
.ffd2-player-list{
    max-height:720px;
}

.ffd2-roster{
    max-height:720px;
    overflow:auto;
}

/* Full-width draft board row */
.ffd2-board-wrap{
    width:100%;
    max-height:820px;
    overflow:auto;
}

/* Commissioner controls stay inside roster panel */
.ffd2-roster-panel .ffd2-admin{
    width:auto;
    max-width:100%;
    margin:12px;
    box-sizing:border-box;
}

/* Tablet / narrow desktop */
@media(max-width:900px){
    .ffd2-layout,
    body.admin-bar .ffd2-layout{
        grid-template-columns:1fr;
        grid-template-areas:
            "players"
            "roster"
            "board";
        gap:12px;
    }
}

/* Mobile */
@media(max-width:600px){
    .ffd2-layout,
    body.admin-bar .ffd2-layout{
        grid-template-columns:1fr;
        grid-template-areas:
            "players"
            "roster"
            "board";
        gap:10px;
    }
}

/* =========================================================
   PHASE 4.2.10 — GRID COLLISION FIX
   Neutralizes legacy responsive grid-column rules.
   ========================================================= */

.ffd2-layout > .ffd2-players-panel,
.ffd2-layout > .ffd2-roster-panel,
.ffd2-layout > .ffd2-board-panel{
    grid-column:auto !important;
    grid-row:auto !important;
    min-width:0;
}

.ffd2-layout > .ffd2-players-panel{
    grid-area:players !important;
}

.ffd2-layout > .ffd2-roster-panel{
    grid-area:roster !important;
}

.ffd2-layout > .ffd2-board-panel{
    grid-area:board !important;
}

/* Keep desktop/tablet two-column top row until 900px */
@media (min-width:901px){
    .ffd2-layout,
    body.admin-bar .ffd2-layout{
        display:grid !important;
        grid-template-columns:minmax(0,1.15fr) minmax(0,0.85fr) !important;
        grid-template-areas:
            "players roster"
            "board board" !important;
        gap:14px !important;
    }
}

/* Stack cleanly under 900px */
@media (max-width:900px){
    .ffd2-layout,
    body.admin-bar .ffd2-layout{
        display:grid !important;
        grid-template-columns:1fr !important;
        grid-template-areas:
            "players"
            "roster"
            "board" !important;
    }

    .ffd2-layout > .ffd2-players-panel,
    .ffd2-layout > .ffd2-roster-panel,
    .ffd2-layout > .ffd2-board-panel{
        width:100%;
        max-width:100%;
    }
}

/* =========================================================
   PHASE 4.2.11 — MATCHED TOP-ROW PANEL HEIGHTS
   Shows all 10 starters + 5 bench spots without roster scrolling.
   ========================================================= */

:root{
    --ffd2-top-panel-height: 860px;
}

/* Match Player Pool and Team Roster panel heights */
.ffd2-players-panel,
.ffd2-roster-panel{
    height:var(--ffd2-top-panel-height);
    display:flex;
    flex-direction:column;
}

/* Player Pool: keep controls fixed, let list use remaining height */
.ffd2-players-panel .ffd2-player-list{
    flex:1 1 auto;
    min-height:0;
    max-height:none;
    overflow:auto;
}

/* Team Roster: show the full 15-slot roster without internal scrolling */
.ffd2-roster-panel .ffd2-roster{
    flex:1 1 auto;
    min-height:0;
    max-height:none;
    overflow:visible;
}

/* Make roster rows compact enough to show all starters + bench spots */
.ffd2-roster-panel .ffd2-roster-slot{
    min-height:43px;
}

/* Commissioner controls remain below roster content inside same panel */
.ffd2-roster-panel .ffd2-admin{
    flex:0 0 auto;
}

/* On smaller screens, allow natural height so stacked panels don't waste space */
@media(max-width:900px){
    .ffd2-players-panel,
    .ffd2-roster-panel{
        height:auto;
        min-height:0;
    }

    .ffd2-players-panel .ffd2-player-list{
        max-height:620px;
    }

    .ffd2-roster-panel .ffd2-roster{
        overflow:visible;
    }
}

/* =========================================================
   PHASE 4.2.12 — FIXED BENCH + ROSTER VALIDITY
   ========================================================= */

.ffd4-bench-title{
    display:flex;
    align-items:center;
    justify-content:space-between;
}
.ffd4-bench-count{
    color:#8d98a6;
    font-size:9px;
    font-weight:800;
}
.ffd4-roster-validity{
    margin:9px 7px 5px;
    padding:8px 9px;
    border:1px solid var(--border);
    border-radius:7px;
    background:#0e1319;
}
.ffd4-roster-validity strong{
    display:block;
    font-size:9px;
}
.ffd4-roster-validity small{
    display:block;
    margin-top:3px;
    color:#8d98a6;
    font-size:8px;
}
.ffd4-roster-validity.valid{
    border-color:#2d6a4f;
}
.ffd4-roster-validity.needs{
    border-color:#6c6638;
}
.ffd4-roster-validity.invalid{
    border-color:#7f3844;
}
.ffd2-player.roster-invalid:disabled{
    opacity:.25;
}

/* =========================================================
   PHASE 4.2.13 — COMMISSIONER CONTROLS MOVED TO BOTTOM
   ========================================================= */

/* Remove old roster-contained sizing assumptions */
.ffd2-roster-panel .ffd2-admin{
    display:none;
}

/* Full-width commissioner controls below the main draft layout */
.ffd2-admin-bottom{
    width:100%;
    max-width:none;
    margin:14px 0 0;
    padding:14px;
    box-sizing:border-box;
    background:var(--panel);
    border:1px solid var(--border);
    border-radius:12px;
}

.ffd2-admin-bottom-heading{
    display:flex;
    align-items:center;
    justify-content:space-between;
    margin-bottom:10px;
}

.ffd2-admin-bottom h3{
    margin:3px 0 0;
    font-size:14px;
}

.ffd2-admin-bottom .ffd2-admin-grid{
    display:grid;
    grid-template-columns:repeat(6,minmax(0,1fr));
    gap:8px;
}

.ffd2-admin-bottom .ffd2-admin-grid button{
    min-height:38px;
    padding:8px 10px;
    background:#1b222c;
    color:#fff;
    border:1px solid var(--border);
    border-radius:7px;
    font-size:10px;
    cursor:pointer;
}

.ffd2-admin-bottom .ffd2-admin-grid button.danger{
    color:#ff9aa4;
    border-color:#5e3038;
}

@media(max-width:900px){
    .ffd2-admin-bottom .ffd2-admin-grid{
        grid-template-columns:repeat(3,minmax(0,1fr));
    }
}

@media(max-width:520px){
    .ffd2-admin-bottom .ffd2-admin-grid{
        grid-template-columns:1fr 1fr;
    }
}

/* v4.2.14.2 commissioner draft-pick trade tool only */
.ffd2-trade-tool{margin-top:14px;padding-top:14px;border-top:1px solid var(--border)}
.ffd2-trade-tool-head{display:flex;justify-content:space-between;gap:10px;margin-bottom:10px;color:var(--muted);font-size:9px}
.ffd2-trade-grid{display:grid;grid-template-columns:minmax(0,1fr) 44px minmax(0,1fr);gap:10px}
.ffd2-trade-side label,.ffd2-trade-grid label{display:block;color:#aeb8c6;font-size:9px;font-weight:900;margin-bottom:5px}
.ffd2-trade-grid .ffd2-team-select{width:100%;margin:0 0 7px}
#ffd2-trade-picks-a,#ffd2-trade-picks-b{display:grid;gap:5px}
.ffd2-trade-pick-select{width:100%;background:#0b1016;color:#fff;border:1px solid var(--border);border-radius:7px;padding:7px;font-size:9px}
.ffd2-trade-arrow{display:flex;align-items:center;justify-content:center;font-size:22px}
.ffd2-trade-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px}
.ffd2-trade-footer span{color:#8d98a6;font-size:9px}
.ffd2-pick-owner{margin:2px 0 5px;color:#9ca7b5;font-size:7px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ffd2-cell.traded-pick{box-shadow:inset 0 0 0 1px #75652e}
@media(max-width:900px){.ffd2-trade-grid{grid-template-columns:1fr}.ffd2-trade-arrow{min-height:28px}}

/* v4.2.14.3 — Draft Board / Team Picks selector */
.ffd2-board-view-control{
    display:flex;
    align-items:center;
    gap:6px;
}
.ffd2-board-view-control label{
    color:var(--muted);
    font-size:9px;
    font-weight:800;
}
.ffd2-board-view-control select{
    background:#0b1016;
    color:#fff;
    border:1px solid var(--border);
    border-radius:7px;
    padding:7px 9px;
    font-size:9px;
}
.ffd2-team-picks-view{
    width:100%;
}
.ffd2-team-picks-grid{
    display:grid;
    grid-template-columns:repeat(14,minmax(120px,1fr));
    gap:6px;
    min-width:1820px;
}
.ffd2-team-picks-view{
    overflow-x:auto;
    padding-bottom:4px;
}
.ffd2-team-picks-column{
    background:#0e1319;
    border:1px solid var(--border);
    border-radius:8px;
    overflow:hidden;
}
.ffd2-team-picks-header{
    padding:8px;
    background:#151b23;
    border-bottom:1px solid var(--border);
}
.ffd2-team-picks-header strong{
    display:block;
    font-size:9px;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}
.ffd2-team-picks-header small{
    display:block;
    margin-top:2px;
    color:#7f8a98;
    font-size:7px;
}
.ffd2-team-picks-list{
    display:flex;
    flex-direction:column;
}
.ffd2-team-pick-row{
    min-height:52px;
    padding:6px 7px;
    border-bottom:1px solid rgba(255,255,255,.06);
}
.ffd2-team-pick-row:last-child{
    border-bottom:0;
}
.ffd2-team-pick-meta{
    display:flex;
    justify-content:space-between;
    gap:6px;
    color:#b7c0ca;
    font-size:7px;
    margin-bottom:3px;
}
.ffd2-team-pick-row strong{
    display:block;
    font-size:9px;
    color:#f3f6f8;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}
.ffd2-team-pick-row small{
    display:block;
    margin-top:2px;
    font-size:7px;
    color:#c0c7cf;
}
.ffd2-team-pick-empty{
    padding:12px 7px;
    color:#596574;
    font-size:8px;
    text-align:center;
}


/* v4.2.14.4 — larger board view selector in top-right */
.ffd2-panel-heading{
    position:relative;
}

.ffd2-board-view-control{
    margin-left:auto;
    align-self:flex-start;
    display:flex;
    align-items:center;
    gap:10px;
}

.ffd2-board-view-control label{
    font-size:11px;
    font-weight:900;
}

.ffd2-board-view-control select{
    min-width:170px;
    min-height:42px;
    padding:10px 34px 10px 14px;
    font-size:12px;
    font-weight:800;
    border-radius:9px;
    cursor:pointer;
}


/* =========================================================
   v4.2.14.5 — BOARD-ONLY TV / PROJECTOR VIEW
   Shortcode: [ffdraft_board]
   ========================================================= */

.ffd2-board-only-app{
    width:100%;
    max-width:none;
    padding:0;
}

.ffd2-tv-board-shell{
    width:100%;
    background:#080b0f;
    color:#fff;
}

.ffd2-tv-header{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    padding:18px 22px;
    border:1px solid var(--border);
    border-bottom:0;
    border-radius:14px 14px 0 0;
    background:#11161d;
}

.ffd2-tv-header h1{
    margin:4px 0 0;
    font-size:28px;
    line-height:1;
}

.ffd2-tv-status{
    text-align:right;
}

.ffd2-tv-status span{
    display:block;
    color:#9aa6b4;
    font-size:13px;
    font-weight:800;
}

.ffd2-tv-status strong{
    display:block;
    margin-top:5px;
    font-size:18px;
}

.ffd2-tv-board-wrap{
    width:100%;
    max-height:none;
    overflow:auto;
    border:1px solid var(--border);
    border-radius:0 0 14px 14px;
    background:#080b0f;
}

.ffd2-tv-board{
    width:100%;
    min-width:1800px;
    table-layout:fixed;
}

.ffd2-tv-board thead th{
    position:sticky;
    top:0;
    z-index:3;
    min-width:120px;
    padding:12px 8px;
    background:#151b23;
    color:#fff;
    font-size:11px;
    font-weight:900;
    border-right:1px solid #26303b;
    border-bottom:1px solid #313c49;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}

.ffd2-tv-board thead th:first-child{
    width:50px;
    min-width:50px;
}

.ffd2-tv-board tbody th{
    width:50px;
    min-width:50px;
    padding:8px 5px;
    font-size:11px;
    background:#11161d;
    color:#9ba6b4;
}

.ffd2-tv-board .ffd2-cell{
    min-height:74px;
    height:74px;
    padding:7px 8px;
    vertical-align:top;
    border-right:1px solid rgba(255,255,255,.08);
    border-bottom:1px solid rgba(255,255,255,.08);
}

.ffd2-tv-board .ffd2-cell strong{
    display:block;
    margin-top:5px;
    font-size:12px;
    line-height:1.15;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}

.ffd2-tv-board .ffd2-cell small{
    display:block;
    margin-top:4px;
    font-size:9px;
}

.ffd2-tv-board .ffd2-pick-meta{
    font-size:8px;
}

.ffd2-tv-board .ffd2-pick-owner{
    font-size:8px;
}

.ffd2-tv-board .ffd2-cell.current{
    outline:3px solid rgba(255,255,255,.9);
    outline-offset:-3px;
}

@media(min-width:1600px){
    .ffd2-tv-header h1{
        font-size:34px;
    }

    .ffd2-tv-status strong{
        font-size:22px;
    }

    .ffd2-tv-board{
        min-width:2100px;
    }

    .ffd2-tv-board thead th{
        font-size:13px;
        padding:14px 9px;
    }

    .ffd2-tv-board .ffd2-cell{
        height:86px;
        min-height:86px;
    }

    .ffd2-tv-board .ffd2-cell strong{
        font-size:14px;
    }

    .ffd2-tv-board .ffd2-cell small{
        font-size:10px;
    }
}

@media(max-width:900px){
    .ffd2-tv-header{
        align-items:flex-start;
        padding:12px;
    }

    .ffd2-tv-header h1{
        font-size:22px;
    }

    .ffd2-tv-status strong{
        font-size:14px;
    }
}


/* =========================================================
   v4.2.14.6 — TV BOARD FIT-TO-SCREEN
   Fits all 14 teams across common TV/projector widths.
   ========================================================= */

.ffd2-board-only-app{
    width:100%;
    max-width:none;
    overflow:hidden;
}

.ffd2-tv-board-shell{
    width:100%;
    overflow:hidden;
}

.ffd2-tv-header{
    padding:10px 12px;
}

.ffd2-tv-header h1{
    font-size:20px;
}

.ffd2-tv-status span{
    font-size:9px;
}

.ffd2-tv-status strong{
    font-size:13px;
}

.ffd2-tv-board-wrap{
    width:100%;
    overflow:hidden;
    max-height:none;
}

.ffd2-tv-board{
    width:100% !important;
    min-width:0 !important;
    table-layout:fixed;
    border-collapse:collapse;
}

.ffd2-tv-board thead th{
    min-width:0 !important;
    width:auto;
    padding:6px 2px;
    font-size:7px;
    line-height:1.05;
    white-space:normal;
    overflow:hidden;
    text-overflow:clip;
    word-break:break-word;
}

.ffd2-tv-board thead th:first-child{
    width:30px !important;
    min-width:30px !important;
}

.ffd2-tv-board tbody th{
    width:30px !important;
    min-width:30px !important;
    padding:4px 2px;
    font-size:8px;
}

.ffd2-tv-board .ffd2-cell{
    width:auto;
    min-width:0;
    height:45px;
    min-height:45px;
    padding:3px 3px;
    overflow:hidden;
}

.ffd2-tv-board .ffd2-cell strong{
    margin-top:2px;
    font-size:8px;
    line-height:1.05;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}

.ffd2-tv-board .ffd2-cell small{
    margin-top:1px;
    font-size:6px;
    line-height:1;
}

.ffd2-tv-board .ffd2-pick-meta{
    font-size:5.5px;
    line-height:1;
}

.ffd2-tv-board .ffd2-pick-owner{
    margin:1px 0 2px;
    font-size:5.5px;
    line-height:1;
}

.ffd2-tv-board .ffd2-cell.current{
    outline:2px solid rgba(255,255,255,.95);
    outline-offset:-2px;
}

/* 1080p+ displays: slightly larger but still full-board */
@media(min-width:1500px){
    .ffd2-tv-header h1{font-size:24px}
    .ffd2-tv-status strong{font-size:15px}
    .ffd2-tv-board thead th{font-size:8px;padding:7px 3px}
    .ffd2-tv-board .ffd2-cell{height:50px;min-height:50px}
    .ffd2-tv-board .ffd2-cell strong{font-size:9px}
    .ffd2-tv-board .ffd2-cell small{font-size:6.5px}
}

/* Smaller laptop/projector screens */
@media(max-width:1200px){
    .ffd2-tv-header{padding:8px 10px}
    .ffd2-tv-header h1{font-size:17px}
    .ffd2-tv-status strong{font-size:11px}
    .ffd2-tv-board thead th{font-size:6px;padding:5px 1px}
    .ffd2-tv-board thead th:first-child,
    .ffd2-tv-board tbody th{width:24px !important;min-width:24px !important}
    .ffd2-tv-board tbody th{font-size:7px}
    .ffd2-tv-board .ffd2-cell{height:39px;min-height:39px;padding:2px}
    .ffd2-tv-board .ffd2-cell strong{font-size:7px}
    .ffd2-tv-board .ffd2-cell small{font-size:5.5px}
    .ffd2-tv-board .ffd2-pick-meta,
    .ffd2-tv-board .ffd2-pick-owner{font-size:5px}
}

/* Very small displays: preserve all 14 columns, reduce further */
@media(max-width:900px){
    .ffd2-tv-header{gap:8px}
    .ffd2-tv-header h1{font-size:15px}
    .ffd2-tv-status span{font-size:7px}
    .ffd2-tv-status strong{font-size:9px}
    .ffd2-tv-board thead th{font-size:5px}
    .ffd2-tv-board .ffd2-cell{height:34px;min-height:34px}
    .ffd2-tv-board .ffd2-cell strong{font-size:6px}
    .ffd2-tv-board .ffd2-cell small{display:none}
    .ffd2-tv-board .ffd2-pick-owner{display:none}
}


/* =========================================================
   v4.2.14.7 — 4-DIGIT TEAM CODE LOGIN
   ========================================================= */

.ffd2-code-login{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    margin:0 0 12px;
    padding:10px 12px;
    background:#0e1319;
    border:1px solid var(--border);
    border-radius:10px;
}
.ffd2-code-login-copy{
    min-width:0;
}
.ffd2-code-login-copy strong{
    display:block;
    margin-top:3px;
    font-size:11px;
}
.ffd2-code-login-controls{
    display:flex;
    align-items:center;
    gap:7px;
}
#ffd2-team-code-input{
    width:92px;
    height:36px;
    padding:0 8px;
    background:#080c11;
    color:#fff;
    border:1px solid var(--border);
    border-radius:7px;
    text-align:center;
    font-size:18px;
    letter-spacing:5px;
    font-weight:900;
}
.ffd2-secondary{
    min-height:36px;
    padding:7px 10px;
    background:#1a212a;
    color:#d9dfe6;
    border:1px solid var(--border);
    border-radius:7px;
    cursor:pointer;
    font-size:9px;
}
@media(max-width:700px){
    .ffd2-code-login{
        align-items:flex-start;
        flex-direction:column;
    }
}


/* =========================================================
   v4.2.14.8 — COMPLETE 14 x 15 TV DRAFT BOARD
   ========================================================= */

.ffd2-board-only-app .ffd2-tv-board-wrap{
    overflow:visible;
}

.ffd2-board-only-app .ffd2-tv-board{
    width:100% !important;
    min-width:0 !important;
    table-layout:fixed;
}

.ffd2-board-only-app .ffd2-tv-board tbody tr{
    height:36px;
}

.ffd2-board-only-app .ffd2-tv-board .ffd2-cell{
    height:36px;
    min-height:36px;
    padding:2px 3px;
}

.ffd2-board-only-app .ffd2-tv-board .ffd2-cell strong{
    font-size:7px;
    margin-top:1px;
}

.ffd2-board-only-app .ffd2-tv-board .ffd2-cell small{
    font-size:5.5px;
    margin-top:1px;
}

.ffd2-board-only-app .ffd2-tv-board .ffd2-pick-meta,
.ffd2-board-only-app .ffd2-tv-board .ffd2-pick-owner{
    font-size:5px;
    line-height:1;
}

.ffd2-board-only-app .ffd2-tv-board tbody th{
    font-size:7px;
    padding:2px;
}

@media(min-width:1500px){
    .ffd2-board-only-app .ffd2-tv-board tbody tr{
        height:42px;
    }

    .ffd2-board-only-app .ffd2-tv-board .ffd2-cell{
        height:42px;
        min-height:42px;
    }

    .ffd2-board-only-app .ffd2-tv-board .ffd2-cell strong{
        font-size:8px;
    }

    .ffd2-board-only-app .ffd2-tv-board .ffd2-cell small{
        font-size:6px;
    }
}


/* =========================================================
   v4.2.14.10 — ISOLATED BOARD-ONLY PAGE
   The 15x14 grid is server-rendered before JavaScript runs.
   ========================================================= */

.ffd2-board-only-app,
.ffd2-board-only-app .ffd2-tv-board-shell,
.ffd2-board-only-app .ffd2-tv-board-wrap{
    height:auto !important;
    min-height:0 !important;
    max-height:none !important;
    overflow:visible !important;
}

.ffd2-board-only-app .ffd2-tv-board{
    display:table !important;
    width:100% !important;
    min-width:0 !important;
    height:auto !important;
}

.ffd2-board-only-app .ffd2-tv-board tbody{
    display:table-row-group !important;
    height:auto !important;
}

.ffd2-board-only-app .ffd2-tv-board tbody tr{
    display:table-row !important;
}

.ffd2-board-only-app .ffd2-tv-board td,
.ffd2-board-only-app .ffd2-tv-board th{
    display:table-cell !important;
}


/* =========================================================
   v4.2.14.11 — 16:9 TV / PROJECTOR BOARD
   Shorter vertically, wider visually.
   ========================================================= */

.ffd2-board-only-app{
    width:100%;
    max-width:none;
    margin:0;
    padding:0;
    border-radius:0;
    background:#080b0f;
}

.ffd2-board-only-app .ffd2-tv-board-shell{
    width:100%;
    max-width:none;
    margin:0;
}

.ffd2-board-only-app .ffd2-tv-header{
    padding:6px 10px;
    min-height:48px;
    border-radius:0;
}

.ffd2-board-only-app .ffd2-tv-header h1{
    font-size:18px;
    margin:2px 0 0;
}

.ffd2-board-only-app .ffd2-tv-status span{
    font-size:8px;
}

.ffd2-board-only-app .ffd2-tv-status strong{
    font-size:11px;
    margin-top:2px;
}

.ffd2-board-only-app .ffd2-tv-board-wrap{
    width:100%;
    overflow:visible !important;
    border-radius:0;
}

.ffd2-board-only-app .ffd2-tv-board{
    width:100% !important;
    min-width:0 !important;
    table-layout:fixed;
    border-collapse:collapse;
}

.ffd2-board-only-app .ffd2-tv-board thead th{
    padding:4px 1px;
    font-size:6px;
    line-height:1;
    height:24px;
}

.ffd2-board-only-app .ffd2-tv-board thead th:first-child{
    width:26px !important;
    min-width:26px !important;
}

.ffd2-board-only-app .ffd2-tv-board tbody th{
    width:26px !important;
    min-width:26px !important;
    padding:1px;
    font-size:6px;
    line-height:1;
}

.ffd2-board-only-app .ffd2-tv-board tbody tr{
    height:30px !important;
}

.ffd2-board-only-app .ffd2-tv-board .ffd2-cell{
    height:30px !important;
    min-height:30px !important;
    padding:1px 2px !important;
}

.ffd2-board-only-app .ffd2-tv-board .ffd2-pick-meta{
    font-size:4.5px !important;
    line-height:1;
    margin:0;
}

.ffd2-board-only-app .ffd2-tv-board .ffd2-pick-owner{
    font-size:4.5px !important;
    line-height:1;
    margin:0 0 1px !important;
}

.ffd2-board-only-app .ffd2-tv-board .ffd2-cell strong{
    font-size:6.5px !important;
    line-height:1;
    margin:0 !important;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}

.ffd2-board-only-app .ffd2-tv-board .ffd2-cell small{
    font-size:5px !important;
    line-height:1;
    margin:1px 0 0 !important;
}

.ffd2-board-only-app .ffd2-tv-board .ffd2-cell .empty{
    font-size:11px;
    line-height:1;
}

/* 1080p / larger TV screens: use a little more size while remaining compact */
@media(min-width:1600px){
    .ffd2-board-only-app .ffd2-tv-header{
        min-height:54px;
        padding:7px 12px;
    }

    .ffd2-board-only-app .ffd2-tv-header h1{
        font-size:20px;
    }

    .ffd2-board-only-app .ffd2-tv-status strong{
        font-size:12px;
    }

    .ffd2-board-only-app .ffd2-tv-board thead th{
        height:26px;
        font-size:6.5px;
    }

    .ffd2-board-only-app .ffd2-tv-board tbody tr{
        height:32px !important;
    }

    .ffd2-board-only-app .ffd2-tv-board .ffd2-cell{
        height:32px !important;
        min-height:32px !important;
    }

    .ffd2-board-only-app .ffd2-tv-board .ffd2-cell strong{
        font-size:7px !important;
    }
}

/* Short projector displays: compress further to preserve the full 15 rounds */
@media(max-height:800px){
    .ffd2-board-only-app .ffd2-tv-header{
        min-height:42px;
        padding:5px 8px;
    }

    .ffd2-board-only-app .ffd2-tv-header h1{
        font-size:16px;
    }

    .ffd2-board-only-app .ffd2-tv-board thead th{
        height:21px;
        padding:2px 1px;
        font-size:5.5px;
    }

    .ffd2-board-only-app .ffd2-tv-board tbody tr{
        height:27px !important;
    }

    .ffd2-board-only-app .ffd2-tv-board .ffd2-cell{
        height:27px !important;
        min-height:27px !important;
    }

    .ffd2-board-only-app .ffd2-tv-board .ffd2-cell strong{
        font-size:6px !important;
    }

    .ffd2-board-only-app .ffd2-tv-board .ffd2-cell small{
        font-size:4.5px !important;
    }
}


/* =========================================================
   v4.2.14.12 — TV BOARD 75% WIDER
   Board-only page only.
   ========================================================= */

/*
 * Increase the board canvas to 175% of the viewport/container width.
 * This makes each of the 14 team columns approximately 75% wider
 * than v4.2.14.11 while preserving all 15 rounds.
 */
.ffd2-board-only-app{
    width:175% !important;
    max-width:none !important;
    margin-left:0 !important;
    margin-right:0 !important;
}

.ffd2-board-only-app .ffd2-tv-board-shell,
.ffd2-board-only-app .ffd2-tv-board-wrap,
.ffd2-board-only-app .ffd2-tv-board{
    width:100% !important;
    max-width:none !important;
}

.ffd2-board-only-app .ffd2-tv-board{
    min-width:0 !important;
    table-layout:fixed !important;
}

/* Allow the WordPress page/window to scroll horizontally to see the extra width. */
body:has(.ffd2-board-only-app){
    overflow-x:auto !important;
}


/* =========================================================
   PHASE 5.0 — DRAFT ROOM PRESENCE / MEDIA / POLISH
   ========================================================= */

.ffd5-room{
    margin-bottom:14px;
    padding:12px;
    background:var(--panel);
    border:1px solid var(--border);
    border-radius:12px;
}

.ffd5-room-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    margin-bottom:10px;
}

.ffd5-room-head h2{
    margin:3px 0 0;
    font-size:14px;
}

.ffd5-room-actions,
.ffd5-media-actions{
    display:flex;
    align-items:center;
    gap:6px;
    flex-wrap:wrap;
}

.ffd5-room-actions .active,
.ffd5-media-actions .active{
    border-color:#2d6a4f;
    color:#a9f0c9;
}

.ffd5-presence-grid{
    display:grid;
    grid-template-columns:repeat(7,minmax(0,1fr));
    gap:6px;
}

.ffd5-presence-card{
    min-width:0;
    min-height:42px;
    display:flex;
    align-items:center;
    gap:7px;
    padding:7px 8px;
    background:#0e1319;
    border:1px solid #1e2630;
    border-radius:7px;
}

.ffd5-presence-dot{
    width:7px;
    height:7px;
    flex:0 0 7px;
    border-radius:50%;
    background:#404b58;
}

.ffd5-presence-card.online .ffd5-presence-dot{
    background:#d1b65b;
}

.ffd5-presence-card.ready .ffd5-presence-dot{
    background:#66e3a4;
}

.ffd5-presence-card strong{
    display:block;
    font-size:8px;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}

.ffd5-presence-card small{
    display:block;
    margin-top:2px;
    color:#768291;
    font-size:7px;
}

.ffd5-presence-card.ready small{
    color:#8adfb4;
}

.ffd5-media-row{
    display:grid;
    grid-template-columns:minmax(150px,1fr) auto 150px;
    gap:10px;
    align-items:center;
    margin-top:10px;
    padding-top:10px;
    border-top:1px solid var(--border);
}

.ffd5-media-copy small{
    display:block;
    margin-top:3px;
    color:var(--muted);
    font-size:8px;
}

.ffd5-local-video{
    width:150px;
    aspect-ratio:16/9;
    object-fit:cover;
    background:#080b0f;
    border:1px solid var(--border);
    border-radius:7px;
}

@media(max-width:900px){
    .ffd5-presence-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
    .ffd5-room-head{
        align-items:flex-start;
        flex-direction:column;
    }
    .ffd5-media-row{
        grid-template-columns:1fr;
    }
    .ffd5-local-video{
        width:100%;
        max-width:320px;
    }
}


/* =========================================================
   PHASE 5.1 — SHARED LIVE VIDEO ROOM
   ========================================================= */
.ffd5-live-room{
    margin-top:10px;
    padding-top:10px;
    border-top:1px solid var(--border);
}
.ffd5-live-room-head{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:10px;
    margin-bottom:8px;
}
.ffd5-live-room-head small{
    display:block;
    margin-top:3px;
    color:var(--muted);
    font-size:8px;
}
.ffd5-video-grid{
    display:grid;
    grid-template-columns:repeat(7,minmax(0,1fr));
    gap:5px;
}
.ffd5-video-tile{
    min-width:0;
    overflow:hidden;
    background:#080b0f;
    border:1px solid var(--border);
    border-radius:7px;
}
.ffd5-video-stage{
    position:relative;
    width:100%;
    aspect-ratio:16/9;
    overflow:hidden;
    background:#05070a;
}
.ffd5-participant-video{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
}
.ffd5-video-name{
    padding:4px 5px;
    font-size:7px;
    font-weight:800;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}
.ffd5-video-grid.compact{
    display:flex;
    overflow-x:auto;
    gap:5px;
}
.ffd5-video-grid.compact .ffd5-video-tile{
    flex:0 0 130px;
}
@media(max-width:1000px){
    .ffd5-video-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media(max-width:700px){
    .ffd5-live-room-head{align-items:flex-start;flex-direction:column}
    .ffd5-video-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}


/* PHASE 5.1.5 — LIVE VIDEO ROOM POLISH */
#ffd5-video-status[data-state="connected"]{color:#8adfb4}
#ffd5-video-status[data-state="connecting"]{color:#d8c878}
#ffd5-video-status[data-state="error"]{color:#ff9ca6}
.ffd5-video-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:7px}
.ffd5-video-tile{position:relative;border:1px solid #28323e;background:#090d12;transition:border-color .15s ease,box-shadow .15s ease}
.ffd5-video-tile.active-speaker{border-color:#66e3a4;box-shadow:inset 0 0 0 1px #66e3a4}
.ffd5-video-tile.on-clock{border-color:#f0cf67;box-shadow:inset 0 0 0 2px #f0cf67}
.ffd5-video-stage{aspect-ratio:16/9;position:relative}
.ffd5-video-placeholder{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:#7f8b98;background:#0a0e13}
.ffd5-video-placeholder strong{display:flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:50%;background:#202833;color:#d9e0e7;font-size:14px}
.ffd5-video-placeholder span{font-size:7px}
.ffd5-video-topbar{position:absolute;top:5px;left:5px;right:5px;z-index:3;display:flex;align-items:center;justify-content:space-between;gap:5px;pointer-events:none}
.ffd5-video-role{max-width:70%;padding:3px 5px;border-radius:5px;background:rgba(10,14,19,.78);color:#d9e0e7;font-size:6px;font-weight:900;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ffd5-video-role.commissioner{color:#f0cf67}
.ffd5-video-clock-badge{display:none;padding:3px 5px;border-radius:5px;background:#f0cf67;color:#111;font-size:6px;font-weight:900;white-space:nowrap}
.ffd5-video-tile.on-clock .ffd5-video-clock-badge{display:inline-block}
.ffd5-video-footer{display:flex;align-items:center;justify-content:space-between;gap:6px;min-height:30px;padding:5px 6px}
.ffd5-video-name{padding:0;min-width:0;font-size:8px}
.ffd5-video-name span{color:#7f8b98;font-weight:500}
.ffd5-video-indicators{display:flex;align-items:center;gap:3px;flex:0 0 auto}
.ffd5-video-status-pill{padding:2px 4px;border-radius:4px;background:#173324;color:#99e4ba;font-size:5.5px;font-weight:800;white-space:nowrap}
.ffd5-video-status-pill.off{background:#3c1d23;color:#ff9da8}
.ffd5-video-grid.compact{display:flex;overflow-x:auto;padding-bottom:3px}
.ffd5-video-grid.compact .ffd5-video-tile{flex:0 0 180px}
.ffd5-video-grid.compact .ffd5-video-footer{min-height:26px}
.ffd5-video-grid.compact .ffd5-video-status-pill{display:none}
@media(max-width:1300px){.ffd5-video-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:900px){.ffd5-video-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:650px){.ffd5-video-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ffd5-video-indicators{display:none}}


/* =========================================================
   PHASE 5.1.6 — DRAFT TILE / ROSTER / AUTO-DRAFT POLISH
   ========================================================= */

/* Let player names use the full pick-tile area */
.ffd2-cell strong,
.ffd4-recent-card strong,
.ffd4-recent-pick strong{
    white-space:normal !important;
    overflow:visible !important;
    text-overflow:clip !important;
    word-break:break-word;
    line-height:1.1;
}

/* Give board player names more vertical room */
.ffd2-cell strong{
    font-size:9px;
    margin-top:2px;
}

/* Recent pick names should dominate the tile */
.ffd4-recent-card strong,
.ffd4-recent-pick strong{
    display:block;
    width:100%;
    font-size:11px;
    line-height:1.1;
}

/* Auto Draft commissioner control */
.ffd2-admin button.ffd5-auto-draft{
    border-color:#5e7d61;
    color:#bce6c1;
    font-weight:800;
}


/* =========================================================
   PHASE 5.1.7 — TEAM ROSTER POSITION / NFL TEAM COLUMNS
   ========================================================= */
.ffd5-roster-player-row{
    width:100%;
    display:grid;
    grid-template-columns:minmax(0,1fr) 42px 42px;
    align-items:center;
    gap:6px;
}

.ffd5-roster-player-row strong{
    min-width:0;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.ffd5-roster-player-pos,
.ffd5-roster-player-team{
    display:block;
    text-align:center;
    font-size:8px;
    font-weight:800;
    line-height:1;
    padding:4px 3px;
    border-left:1px solid var(--border);
}

.ffd5-roster-player-team{
    color:var(--muted);
}


/* PHASE 5.1.8 — RECENT PICK PLAYER NAME SIZE */
.ffd4-recent-card strong,
.ffd4-recent-pick strong{
    font-size:22px !important;
    line-height:1.05;
}


/* =========================================================
   PHASE 5.1.9 — RECENT PICK ACTUAL PLAYER NAME SELECTOR FIX
   =========================================================
   Recent Picks use .ffd4-recent-tile > .ffd4-recent-player > strong.
   Earlier rule targeted legacy .ffd4-recent-card/.ffd4-recent-pick selectors.
*/
.ffd4-recent-tile .ffd4-recent-player strong{
    display:block !important;
    width:100% !important;
    font-size:22px !important;
    line-height:1.05 !important;
    font-weight:900 !important;
    white-space:normal !important;
    overflow:visible !important;
    text-overflow:clip !important;
    word-break:normal !important;
}

.ffd4-recent-player{
    width:100% !important;
    min-width:0;
}


/* =========================================================
   PHASE 5.1.10 — MAIN DRAFT BOARD TILE LAYOUT
   ========================================================= */

.ffd2-cell{
    position:relative;
    padding:0 !important;
}

.ffd5-board-tile{
    position:relative;
    width:100%;
    height:100%;
    min-height:64px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    padding:14px 5px 18px;
    box-sizing:border-box;
}

.ffd5-board-round-pick{
    position:absolute;
    top:4px;
    right:5px;
    margin:0 !important;
    font-size:8px !important;
    font-weight:900;
    line-height:1;
}

.ffd5-board-tile > .ffd2-pn{
    position:absolute;
    top:4px;
    left:5px;
    margin:0;
    font-size:7px;
    line-height:1;
}

.ffd5-board-player{
    width:100%;
    min-width:0;
    text-align:center;
}

.ffd5-board-player strong{
    display:block !important;
    width:100%;
    margin:0 !important;
    font-size:10px !important;
    line-height:1.05 !important;
    text-align:center;
    white-space:normal !important;
    overflow:visible !important;
    text-overflow:clip !important;
    word-break:break-word;
}

.ffd5-board-player small{
    display:block !important;
    margin-top:3px !important;
    font-size:7px !important;
    line-height:1 !important;
    text-align:center;
}

.ffd5-board-team{
    position:absolute;
    left:4px;
    right:4px;
    bottom:4px;
    margin:0 !important;
    font-size:6.5px !important;
    line-height:1 !important;
    text-align:center;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}


/* =========================================================
   PHASE 5.1.12 — MAIN DRAFT BOARD FONT SCALING
   Player name remains current size. All other tile fields are 2x.
   ========================================================= */
.ffd5-board-tile > .ffd2-pn{
    font-size:14px !important;
}
.ffd5-board-round-pick{
    font-size:16px !important;
}
.ffd5-board-player small{
    font-size:14px !important;
}
.ffd5-board-team{
    font-size:13px !important;
}

/* Extra spacing for the enlarged top/bottom metadata */
.ffd5-board-tile{
    padding-top:22px !important;
    padding-bottom:25px !important;
}


/* =========================================================
   PHASE 5.1.14 — MAIN DRAFT BOARD FONT REBALANCE
   =========================================================
   Overall pick + round.pick: 20% smaller than v5.1.12.
   Position + fantasy team: 40% smaller than v5.1.12.
*/
.ffd5-board-tile > .ffd2-pn{
    font-size:11.2px !important;
}
.ffd5-board-round-pick{
    font-size:12.8px !important;
}
.ffd5-board-player small{
    font-size:8.4px !important;
}
.ffd5-board-team{
    font-size:7.8px !important;
}

/* Tighten metadata spacing after font reduction */
.ffd5-board-tile{
    padding-top:18px !important;
    padding-bottom:20px !important;
}


/* =========================================================
   PHASE 5.1.21 — TIMER EXPIRED COMMISSIONER CONTROL
   ========================================================= */
.ffd5-expired-pick-controls{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    margin-top:10px;
    padding:11px 12px;
    border:1px solid #7e5a35;
    border-radius:9px;
    background:#17120d;
}

.ffd5-expired-pick-controls[hidden]{
    display:none !important;
}

.ffd5-expired-pick-controls strong{
    display:block;
    margin-top:3px;
    font-size:11px;
}

.ffd5-expired-pick-controls small{
    display:block;
    margin-top:3px;
    color:var(--muted);
    font-size:8px;
}

.ffd5-expired-pick-actions{
    display:flex;
    gap:7px;
    flex-wrap:wrap;
}

@media(max-width:700px){
    .ffd5-expired-pick-controls{
        align-items:flex-start;
        flex-direction:column;
    }
}


/* =========================================================
   PHASE 5.1.22 — PRINTABLE PLAYER RANKINGS PAGE
   Shortcode: [ffdraft_rankings]
   ========================================================= */

.ffd2-rankings-page{
    max-width:900px;
    margin:0 auto;
    padding:16px;
    background:#fff;
    color:#111;
}

.ffd2-rankings-header{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    margin-bottom:12px;
}

.ffd2-rankings-header h1{
    margin:2px 0 0;
    font-size:24px;
    color:#111;
}

.ffd2-rankings-page .ffd2-label{
    color:#555;
}

.ffd2-rankings-print{
    padding:8px 14px;
    border:1px solid #aaa;
    border-radius:6px;
    background:#f5f5f5;
    color:#111;
    cursor:pointer;
    font-weight:700;
}

.ffd2-rankings-table{
    width:100%;
    border-collapse:collapse;
    table-layout:fixed;
    font-size:11px;
    line-height:1.15;
}

.ffd2-rankings-table th,
.ffd2-rankings-table td{
    border:1px solid #c9c9c9;
    padding:4px 5px;
    text-align:left;
    vertical-align:middle;
}

.ffd2-rankings-table th{
    background:#ececec;
    font-weight:800;
}

.ffd2-rankings-table .rank-col{
    width:44px;
    text-align:center;
}

.ffd2-rankings-table .pos-col{
    width:54px;
    text-align:center;
}

.ffd2-rankings-table .team-col{
    width:58px;
    text-align:center;
}

.ffd2-rankings-table .prk-col{
    width:48px;
    text-align:center;
}

.ffd2-rankings-table .player-col{
    font-weight:700;
}

@media print{
    @page{
        size:Letter portrait;
        margin:.35in;
    }

    body{
        background:#fff !important;
    }

    body *{
        visibility:hidden;
    }

    .ffd2-rankings-page,
    .ffd2-rankings-page *{
        visibility:visible;
    }

    .ffd2-rankings-page{
        position:absolute;
        left:0;
        top:0;
        width:100%;
        max-width:none;
        margin:0;
        padding:0;
        background:#fff !important;
        color:#000 !important;
    }

    .ffd2-rankings-print{
        display:none !important;
    }

    .ffd2-rankings-header{
        margin-bottom:6px;
    }

    .ffd2-rankings-header h1{
        font-size:16px;
    }

    .ffd2-rankings-page .ffd2-label{
        font-size:8px;
    }

    .ffd2-rankings-table{
        font-size:8px;
        line-height:1.05;
    }

    .ffd2-rankings-table th,
    .ffd2-rankings-table td{
        padding:2px 3px;
        border-color:#777;
    }

    .ffd2-rankings-table thead{
        display:table-header-group;
    }

    .ffd2-rankings-table tr{
        break-inside:avoid;
        page-break-inside:avoid;
    }

    .ffd2-rankings-table .rank-col{
        width:.34in;
    }

    .ffd2-rankings-table .pos-col{
        width:.42in;
    }

    .ffd2-rankings-table .team-col{
        width:.45in;
    }

    .ffd2-rankings-table .prk-col{
        width:.38in;
    }
}


/* PHASE 5.1.27 — PLAYER SEARCH CONTRAST */
#ffd2-search,
.ffd2-player-search input,
input[type="search"]#ffd2-search{
    color:#000 !important;
    -webkit-text-fill-color:#000 !important;
}

#ffd2-search::placeholder,
.ffd2-player-search input::placeholder{
    color:#555 !important;
    opacity:1 !important;
}


/* PHASE 5.1.30 — PLAYER POOL CLICK / SESSION RESTORE FIX */
.ffd2-player.pick-unavailable{
    opacity:.58;
    cursor:not-allowed;
}

.ffd2-player.pick-unavailable.roster-invalid{
    opacity:.48;
}

/* Do not use the native disabled attribute for Player Pool rows.
   This lets us show the user the exact reason a row cannot be selected. */
.ffd2-player[aria-disabled="true"]{
    pointer-events:auto !important;
}


/* =========================================================
   PHASE 5.1.31 — FULL UI POLISH / CLEANUP RELEASE
   ========================================================= */

:root{
    --ffd31-radius:10px;
    --ffd31-gap:12px;
    --ffd31-control-h:36px;
}

/* GLOBAL TYPE / RHYTHM */
.ffd2-app{
    font-size:14px;
    line-height:1.35;
}

.ffd2-app h1,
.ffd2-app h2,
.ffd2-app h3{
    letter-spacing:-0.02em;
}

.ffd2-label{
    font-size:10px !important;
    line-height:1.1 !important;
    letter-spacing:.08em !important;
}

.ffd2-panel,
.ffd5-room,
.ffd2-admin{
    border-radius:var(--ffd31-radius) !important;
}

.ffd2-panel-heading,
.ffd5-room-head,
.ffd2-admin-bottom-heading{
    min-height:48px;
    align-items:center !important;
}

.ffd2-panel-heading h2,
.ffd5-room-head h2,
.ffd2-admin-bottom-heading h3{
    margin:2px 0 0 !important;
    font-size:18px !important;
    line-height:1.15 !important;
}

/* TOP STATUS */
.ffd2-status{ gap:10px !important; }

.ffd2-status-card,
.ffd2-clock-card{
    min-height:70px !important;
    padding:10px 14px !important;
}

.ffd2-status-card strong,
.ffd2-clock-copy strong{
    font-size:18px !important;
    line-height:1.1 !important;
}

.ffd2-timer{
    font-size:28px !important;
    line-height:1 !important;
    min-width:78px;
    text-align:right;
}

.ffd4-turn-status{
    min-height:38px;
    display:flex;
    align-items:center;
    padding:8px 12px !important;
    font-size:12px !important;
    line-height:1.25 !important;
}

/* TEAM ACCESS */
.ffd2-code-login{
    gap:12px !important;
    padding:10px 12px !important;
    align-items:center !important;
}

.ffd2-code-login-copy strong{ font-size:14px !important; }
.ffd2-code-login-controls{ gap:8px !important; }

#ffd2-team-code-input{
    height:var(--ffd31-control-h) !important;
    min-width:110px;
    font-size:18px !important;
    letter-spacing:.18em;
    padding:6px 10px !important;
}

.ffd2-code-login button,
.ffd5-room-actions button,
.ffd2-admin button,
.ffd2-trade-footer button{
    min-height:var(--ffd31-control-h) !important;
    padding:7px 12px !important;
    font-size:12px !important;
    line-height:1.1 !important;
}

/* DRAFT ROOM */
.ffd5-room{ padding:12px !important; }
.ffd5-room-actions{ gap:7px !important; flex-wrap:wrap; }
.ffd5-presence-grid{ gap:8px !important; }

.ffd5-presence-card{
    min-height:48px !important;
    padding:8px 10px !important;
}

.ffd5-presence-card strong{
    font-size:11px !important;
    line-height:1.15 !important;
}

.ffd5-presence-card small{ font-size:9px !important; }

.ffd5-live-room-head{
    gap:10px;
    align-items:center !important;
}

#ffd5-video-status{
    font-size:10px !important;
    line-height:1.2 !important;
}

/* RECENT PICKS */
.ffd4-recent-picks{ gap:8px !important; }

.ffd4-recent-tile{
    min-height:100px !important;
    padding:8px 9px 9px !important;
    border-radius:9px !important;
}

.ffd4-recent-pick-meta{ min-height:16px; }

.ffd4-recent-pn,
.ffd4-recent-tile .ffd4-round-pick{
    font-size:10px !important;
    line-height:1 !important;
}

.ffd4-recent-player{
    display:flex !important;
    flex-direction:column;
    justify-content:center;
    min-height:55px;
    padding:3px 0;
}

.ffd4-recent-tile .ffd4-recent-player strong{
    font-size:22px !important;
    line-height:1.02 !important;
    text-align:center;
}

.ffd4-recent-player small{
    margin-top:4px !important;
    font-size:10px !important;
    line-height:1 !important;
    text-align:center;
}

.ffd4-recent-team{
    font-size:9px !important;
    line-height:1.05 !important;
    min-height:11px;
}

/* MAIN TWO-COLUMN CONTENT */
.ffd2-main{
    grid-template-columns:minmax(0,1.7fr) minmax(320px,.9fr) !important;
    gap:14px !important;
    align-items:stretch !important;
}

.ffd2-player-panel,
.ffd2-roster-panel{
    min-width:0;
    height:100%;
}

/* PLAYER POOL TOOLBAR */
.ffd2-player-toolbar{ gap:8px !important; }

#ffd2-search,
#ffd2-team-filter,
.ffd2-team-select{
    height:var(--ffd31-control-h) !important;
    font-size:12px !important;
    border-radius:7px !important;
}

#ffd2-search{
    min-width:0;
    width:100% !important;
    padding:7px 10px !important;
    color:#000 !important;
    -webkit-text-fill-color:#000 !important;
}

#ffd2-team-filter,
.ffd2-team-select{
    padding:6px 8px !important;
}

/* PLAYER POOL COLUMN GEOMETRY */
.ffd2-player-table-header,
.ffd2-player-table-row{
    display:grid !important;
    grid-template-columns:58px minmax(190px,1fr) 58px 62px 64px !important;
    align-items:center;
}

.ffd2-player-table-header{
    min-height:34px !important;
    font-size:10px !important;
}

.ffd2-player-table-row{
    min-height:38px !important;
    padding:0 !important;
    font-size:11px !important;
}

.ffd2-player-table-row > span,
.ffd2-player-table-header > *{
    min-width:0;
    padding:7px 8px !important;
}

.ffd2-cell-name strong{
    font-size:12px !important;
    line-height:1.12 !important;
}

.ffd2-cell-overall,
.ffd2-cell-pos,
.ffd2-cell-posrank,
.ffd2-cell-team{
    text-align:center !important;
}

.ffd2-cell-pos .badge{
    min-width:34px;
    font-size:9px !important;
    padding:3px 5px !important;
}

/* PLAYER FILTERS */
#ffd2-filters{
    gap:6px !important;
    flex-wrap:wrap;
}

.ffd2-filter{
    min-height:30px !important;
    padding:5px 9px !important;
    font-size:10px !important;
}

/* ROSTER */
.ffd2-roster{
    gap:5px !important;
}

.ffd2-roster-slot{
    display:grid !important;
    grid-template-columns:54px minmax(0,1fr) !important;
    min-height:38px !important;
    align-items:center;
    padding:0 !important;
}

.ffd4-slot-label{
    font-size:10px !important;
    padding:0 8px !important;
}

.ffd5-roster-player-row{
    grid-template-columns:minmax(0,1fr) 48px 48px !important;
    gap:0 !important;
    min-height:38px;
}

.ffd5-roster-player-row strong{
    font-size:11px !important;
    line-height:1.12 !important;
    padding:0 8px;
}

.ffd5-roster-player-pos,
.ffd5-roster-player-team{
    font-size:9px !important;
    padding:0 6px !important;
}

.ffd4-open-slot{
    font-size:10px !important;
    padding:0 8px;
}

.ffd4-bench-title{
    margin-top:8px !important;
    padding-top:7px !important;
}

.ffd4-roster-validity{
    margin-top:8px !important;
    padding:8px 10px !important;
}

.ffd4-roster-validity strong{ font-size:10px !important; }
.ffd4-roster-validity small{ font-size:9px !important; }

/* MAIN DRAFT BOARD — LIGHT THEME */
.ffd2-board-wrap,
.ffd2-board-shell,
.ffd2-board-container{
    background:#f6f7f9 !important;
    color:#111 !important;
}

.ffd2-board{
    background:#fff !important;
    color:#111 !important;
}

.ffd2-board th{
    background:#e9edf2 !important;
    color:#111 !important;
    border-color:#c9d0d8 !important;
}

.ffd2-board td{
    border-color:#c9d0d8 !important;
    color:#111 !important;
}

.ffd2-cell{
    background:#fff !important;
    color:#111 !important;
}

.ffd2-cell.current{
    outline:3px solid #111 !important;
    outline-offset:-3px;
}

.ffd5-board-player strong,
.ffd5-board-player small,
.ffd5-board-team,
.ffd2-pn,
.ffd5-board-round-pick{
    color:#111 !important;
    text-shadow:none !important;
}

.ffd2-cell .empty{
    color:#8a8f98 !important;
}

/* Preserve position colors while making text consistently readable */
.ffd2-cell.pos-qb,
.ffd4-recent-tile.pos-qb{ color:#111 !important; }
.ffd2-cell.pos-rb,
.ffd4-recent-tile.pos-rb{ color:#111 !important; }
.ffd2-cell.pos-wr,
.ffd4-recent-tile.pos-wr{ color:#111 !important; }
.ffd2-cell.pos-te,
.ffd4-recent-tile.pos-te{ color:#111 !important; }
.ffd2-cell.pos-def,
.ffd4-recent-tile.pos-def{ color:#111 !important; }
.ffd2-cell.pos-k,
.ffd4-recent-tile.pos-k{ color:#111 !important; }
.ffd2-cell.pos-punishment,
.ffd4-recent-tile.pos-punishment{ color:#111 !important; }

/* TEAM PICKS */
.ffd2-team-picks-view{
    background:#fff !important;
    color:#111 !important;
}

.ffd2-team-picks-grid{
    gap:10px !important;
}

.ffd2-team-picks-card{
    min-width:0;
    border-radius:9px !important;
}

/* COMMISSIONER */
.ffd2-admin{
    margin-top:16px !important;
    padding:12px !important;
}

.ffd2-admin-grid{
    grid-template-columns:repeat(auto-fit,minmax(130px,1fr)) !important;
    gap:8px !important;
}

.ffd2-trade-tool{
    margin-top:12px !important;
    padding-top:12px !important;
}

.ffd2-trade-grid{
    grid-template-columns:minmax(0,1fr) 44px minmax(0,1fr) !important;
    gap:10px !important;
}

.ffd2-trade-pick-select{
    min-height:34px !important;
    font-size:10px !important;
}

/* RESPONSIVE */
@media(max-width:1000px){
    .ffd2-main{
        grid-template-columns:minmax(0,1.45fr) minmax(300px,.95fr) !important;
    }

    .ffd2-player-table-header,
    .ffd2-player-table-row{
        grid-template-columns:52px minmax(160px,1fr) 52px 56px 58px !important;
    }
}

@media(max-width:820px){
    .ffd2-main{
        grid-template-columns:1fr !important;
    }

    .ffd2-player-panel,
    .ffd2-roster-panel{
        width:100% !important;
    }

    .ffd2-status{
        grid-template-columns:1fr !important;
    }

    .ffd2-code-login,
    .ffd5-room-head{
        align-items:flex-start !important;
        flex-direction:column;
    }

    .ffd2-code-login-controls,
    .ffd5-room-actions{
        width:100%;
    }

    .ffd2-trade-grid{
        grid-template-columns:1fr !important;
    }

    .ffd2-trade-arrow{
        transform:rotate(90deg);
        justify-self:center;
    }
}

@media(max-width:560px){
    .ffd2-player-table-header,
    .ffd2-player-table-row{
        grid-template-columns:46px minmax(120px,1fr) 46px 48px 50px !important;
    }

    .ffd2-player-table-row > span,
    .ffd2-player-table-header > *{
        padding:6px 5px !important;
    }

    .ffd2-cell-name strong{
        font-size:11px !important;
    }

    .ffd4-recent-picks{
        grid-template-columns:1fr 1fr !important;
    }
}


/* =========================================================
   PHASE 5.1.32 — RESTORED POSITION CONDITIONAL FORMATTING
   Light-theme position colors for both Draft Boards
   ========================================================= */
.ffd2-board .ffd2-cell.pos-qb{
    background:#dceeff !important;
    border-color:#8fbfe8 !important;
}
.ffd2-board .ffd2-cell.pos-rb{
    background:#dcf4e6 !important;
    border-color:#8bc9a5 !important;
}
.ffd2-board .ffd2-cell.pos-wr{
    background:#f0e2f5 !important;
    border-color:#c49bd2 !important;
}
.ffd2-board .ffd2-cell.pos-te{
    background:#f8ead8 !important;
    border-color:#d8b17b !important;
}
.ffd2-board .ffd2-cell.pos-def{
    background:#e3e8ed !important;
    border-color:#aab6c2 !important;
}
.ffd2-board .ffd2-cell.pos-k{
    background:#f5f0cf !important;
    border-color:#cfc27c !important;
}
.ffd2-board .ffd2-cell.pos-punishment{
    background:#f7dfe3 !important;
    border-color:#d99aa5 !important;
}

/* Main Draft Board player-name increase: 9.9px -> 10.9px */
.ffd2-board .ffd5-board-player strong{
    font-size:10.9px !important;
}


/* =========================================================
   PHASE 5.1.33 — LEAGUE STATUS 14-TILE GRID
   ========================================================= */

.ffd5-presence-grid{
    display:grid !important;
    grid-template-columns:repeat(7, minmax(0,1fr)) !important;
    gap:8px !important;
    width:100% !important;
}

.ffd5-presence-card{
    min-width:0 !important;
    width:100% !important;
    box-sizing:border-box !important;
}

@media(max-width:1100px){
    .ffd5-presence-grid{
        grid-template-columns:repeat(4, minmax(0,1fr)) !important;
    }
}

@media(max-width:760px){
    .ffd5-presence-grid{
        grid-template-columns:repeat(2, minmax(0,1fr)) !important;
    }
}

@media(max-width:420px){
    .ffd5-presence-grid{
        grid-template-columns:1fr !important;
    }
}


/* =========================================================
   PHASE 5.1.33 — MAIN INTERFACE DRAFT BOARD POSITION COLORS
   Higher specificity than the light-theme .ffd2-cell background.
   ========================================================= */

.ffd2-app .ffd2-board td.ffd2-cell.pos-qb{
    background:#dceeff !important;
    border-color:#8fbfe8 !important;
}
.ffd2-app .ffd2-board td.ffd2-cell.pos-rb{
    background:#dcf4e6 !important;
    border-color:#8bc9a5 !important;
}
.ffd2-app .ffd2-board td.ffd2-cell.pos-wr{
    background:#f0e2f5 !important;
    border-color:#c49bd2 !important;
}
.ffd2-app .ffd2-board td.ffd2-cell.pos-te{
    background:#f8ead8 !important;
    border-color:#d8b17b !important;
}
.ffd2-app .ffd2-board td.ffd2-cell.pos-def{
    background:#e3e8ed !important;
    border-color:#aab6c2 !important;
}
.ffd2-app .ffd2-board td.ffd2-cell.pos-k{
    background:#f5f0cf !important;
    border-color:#cfc27c !important;
}
.ffd2-app .ffd2-board td.ffd2-cell.pos-punishment{
    background:#f7dfe3 !important;
    border-color:#d99aa5 !important;
}

/* Keep dark readable text on all colored light-theme cells */
.ffd2-app .ffd2-board td.ffd2-cell.pos-qb *,
.ffd2-app .ffd2-board td.ffd2-cell.pos-rb *,
.ffd2-app .ffd2-board td.ffd2-cell.pos-wr *,
.ffd2-app .ffd2-board td.ffd2-cell.pos-te *,
.ffd2-app .ffd2-board td.ffd2-cell.pos-def *,
.ffd2-app .ffd2-board td.ffd2-cell.pos-k *,
.ffd2-app .ffd2-board td.ffd2-cell.pos-punishment *{
    color:#111 !important;
    text-shadow:none !important;
}


/* =========================================================
   PHASE 5.1.34 — LEAGUE STATUS TEAM NAME WRAPPING
   ========================================================= */
.ffd5-presence-card{
    align-items:flex-start !important;
}

.ffd5-presence-card > div{
    min-width:0 !important;
    width:100% !important;
}

.ffd5-presence-card strong{
    display:block !important;
    width:100% !important;
    white-space:normal !important;
    overflow:visible !important;
    text-overflow:clip !important;
    overflow-wrap:anywhere !important;
    word-break:normal !important;
    line-height:1.15 !important;
}

.ffd5-presence-card small{
    display:block !important;
    margin-top:3px !important;
}


/* =========================================================
   PHASE 5.1.34 — MAIN BOARD POSITION COLOR FALLBACK
   Inline styles are primary; this is backup.
   ========================================================= */
.ffd2-app table.ffd2-board tbody td.ffd2-cell.pos-qb{background:#dceeff !important;}
.ffd2-app table.ffd2-board tbody td.ffd2-cell.pos-rb{background:#dcf4e6 !important;}
.ffd2-app table.ffd2-board tbody td.ffd2-cell.pos-wr{background:#f0e2f5 !important;}
.ffd2-app table.ffd2-board tbody td.ffd2-cell.pos-te{background:#f8ead8 !important;}
.ffd2-app table.ffd2-board tbody td.ffd2-cell.pos-def{background:#e3e8ed !important;}
.ffd2-app table.ffd2-board tbody td.ffd2-cell.pos-k{background:#f5f0cf !important;}
.ffd2-app table.ffd2-board tbody td.ffd2-cell.pos-punishment{background:#f7dfe3 !important;}


/* PHASE 5.1.35 — STATUS STRIP ABOVE DRAFT FEED */
.ffd2-status{
    margin-top:12px !important;
    margin-bottom:10px !important;
}


/* =========================================================
   PHASE 5.1.37 — MAIN BOARD NEUTRAL TILE BORDERS
   Keep position background colors, remove position-colored borders.
   ========================================================= */
.ffd2-app .ffd2-board td.ffd2-cell,
.ffd2-app .ffd2-board td.ffd2-cell.pos-qb,
.ffd2-app .ffd2-board td.ffd2-cell.pos-rb,
.ffd2-app .ffd2-board td.ffd2-cell.pos-wr,
.ffd2-app .ffd2-board td.ffd2-cell.pos-te,
.ffd2-app .ffd2-board td.ffd2-cell.pos-def,
.ffd2-app .ffd2-board td.ffd2-cell.pos-k,
.ffd2-app .ffd2-board td.ffd2-cell.pos-punishment{
    border-color:#c9d0d8 !important;
}


/* =========================================================
   PHASE 5.1.39 — LANDSCAPE PLAYER RANKINGS, SCREEN + PRINT
   ========================================================= */

.ffd2-rankings-page.ffd2-rankings-landscape{
    width:min(96vw, 1500px) !important;
    max-width:1500px !important;
    margin:0 auto !important;
    padding:14px 16px !important;
}

.ffd2-rankings-columns{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:12px;
    align-items:start;
}

.ffd2-rankings-compact-table{
    width:100%;
    table-layout:fixed;
    border-collapse:collapse;
    font-size:9px;
    line-height:1.05;
    background:#fff;
    color:#111;
}

.ffd2-rankings-compact-table th,
.ffd2-rankings-compact-table td{
    border:1px solid #c9c9c9;
    padding:2px 4px;
    height:16px;
    vertical-align:middle;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}

.ffd2-rankings-compact-table th{
    background:#ececec;
    font-size:8px;
    font-weight:800;
}

.ffd2-rankings-compact-table .rank-col{
    width:30px;
    text-align:center;
}

.ffd2-rankings-compact-table .pos-col{
    width:38px;
    text-align:center;
}

.ffd2-rankings-compact-table .team-col{
    width:42px;
    text-align:center;
}

.ffd2-rankings-compact-table .player-col{
    font-weight:700;
}

@media(max-width:1100px){
    .ffd2-rankings-page.ffd2-rankings-landscape{
        width:98vw !important;
        padding:10px !important;
    }

    .ffd2-rankings-columns{
        gap:8px;
    }

    .ffd2-rankings-compact-table{
        font-size:8px;
    }
}

@media(max-width:760px){
    .ffd2-rankings-columns{
        grid-template-columns:1fr;
    }

    .ffd2-rankings-compact-table{
        font-size:11px;
    }

    .ffd2-rankings-compact-table th{
        font-size:10px;
    }
}

@media print{
    @page{
        size:Letter landscape;
        margin:.08in;
    }

    body{
        margin:0 !important;
        padding:0 !important;
        background:#fff !important;
    }

    body *{
        visibility:hidden;
    }

    .ffd2-rankings-page,
    .ffd2-rankings-page *{
        visibility:visible;
    }

    .ffd2-rankings-page.ffd2-rankings-landscape{
        position:absolute !important;
        left:0 !important;
        top:0 !important;
        width:100% !important;
        max-width:none !important;
        margin:0 !important;
        padding:0 !important;
    }

    .ffd2-rankings-header{
        margin:0 0 2px !important;
        min-height:0 !important;
    }

    .ffd2-rankings-header h1{
        font-size:8px !important;
        line-height:1 !important;
        margin:0 !important;
    }

    .ffd2-rankings-page .ffd2-label,
    .ffd2-rankings-print{
        display:none !important;
    }

    .ffd2-rankings-columns{
        display:grid !important;
        grid-template-columns:repeat(3,minmax(0,1fr)) !important;
        gap:.06in !important;
        width:100% !important;
    }

    .ffd2-rankings-compact-table{
        width:100% !important;
        table-layout:fixed !important;
        border-collapse:collapse !important;
        font-size:4.2px !important;
        line-height:1 !important;
    }

    .ffd2-rankings-compact-table th,
    .ffd2-rankings-compact-table td{
        border:.3px solid #777 !important;
        padding:.25px .8px !important;
        height:5.15px !important;
        min-height:5.15px !important;
        max-height:5.15px !important;
        line-height:1 !important;
        vertical-align:middle !important;
        white-space:nowrap !important;
        overflow:hidden !important;
        text-overflow:clip !important;
    }

    .ffd2-rankings-compact-table th{
        background:#eaeaea !important;
        font-size:4px !important;
        font-weight:800 !important;
    }

    .ffd2-rankings-compact-table .rank-col{
        width:.18in !important;
    }

    .ffd2-rankings-compact-table .pos-col{
        width:.22in !important;
    }

    .ffd2-rankings-compact-table .team-col{
        width:.24in !important;
    }

    .ffd2-rankings-compact-table .player-col{
        font-size:4.3px !important;
        font-weight:700 !important;
    }

    .ffd2-rankings-compact-table thead{
        display:table-header-group !important;
    }

    .ffd2-rankings-compact-table tr{
        break-inside:avoid !important;
        page-break-inside:avoid !important;
    }
}


/* =========================================================
   PHASE 5.1.40 — STANDARD PORTRAIT PRINT RANKINGS
   Screen remains landscape-oriented.
   ========================================================= */
@media print{
    @page{
        size:Letter portrait !important;
        margin:.06in !important;
    }

    .ffd2-rankings-page.ffd2-rankings-landscape{
        width:100% !important;
        max-width:none !important;
        padding:0 !important;
        margin:0 !important;
    }

    .ffd2-rankings-columns{
        grid-template-columns:repeat(3,minmax(0,1fr)) !important;
        gap:.035in !important;
    }

    .ffd2-rankings-header{
        margin:0 0 1px !important;
    }

    .ffd2-rankings-header h1{
        font-size:7px !important;
    }

    .ffd2-rankings-compact-table{
        font-size:3.9px !important;
        line-height:1 !important;
    }

    .ffd2-rankings-compact-table th,
    .ffd2-rankings-compact-table td{
        padding:.2px .55px !important;
        height:5.05px !important;
        min-height:5.05px !important;
        max-height:5.05px !important;
        line-height:1 !important;
    }

    .ffd2-rankings-compact-table th{
        font-size:3.7px !important;
    }

    .ffd2-rankings-compact-table .rank-col{
        width:.15in !important;
    }

    .ffd2-rankings-compact-table .pos-col{
        width:.19in !important;
    }

    .ffd2-rankings-compact-table .team-col{
        width:.21in !important;
    }

    .ffd2-rankings-compact-table .player-col{
        font-size:4px !important;
    }
}


/* =========================================================
   PHASE 5.1.41 — PORTRAIT + LANDSCAPE PRINT OPTIONS
   ========================================================= */

.ffd2-rankings-print-options{
    display:flex;
    gap:8px;
    align-items:center;
    flex-wrap:wrap;
}

/* Default/fallback remains portrait */
@page{
    size:Letter portrait;
}

/* Orientation selected by rankings-page buttons */
html.ffd2-print-portrait{
    --ffd2-print-width:8.5in;
}

html.ffd2-print-landscape{
    --ffd2-print-width:11in;
}

@media print{
    .ffd2-rankings-print-options{
        display:none !important;
    }

    html.ffd2-print-portrait .ffd2-rankings-columns{
        grid-template-columns:repeat(3,minmax(0,1fr)) !important;
        gap:.035in !important;
    }

    html.ffd2-print-portrait .ffd2-rankings-compact-table{
        font-size:3.9px !important;
    }

    html.ffd2-print-portrait .ffd2-rankings-compact-table th,
    html.ffd2-print-portrait .ffd2-rankings-compact-table td{
        height:5.05px !important;
        min-height:5.05px !important;
        max-height:5.05px !important;
        padding:.2px .55px !important;
    }

    html.ffd2-print-landscape .ffd2-rankings-columns{
        grid-template-columns:repeat(3,minmax(0,1fr)) !important;
        gap:.06in !important;
    }

    html.ffd2-print-landscape .ffd2-rankings-compact-table{
        font-size:4.2px !important;
    }

    html.ffd2-print-landscape .ffd2-rankings-compact-table th,
    html.ffd2-print-landscape .ffd2-rankings-compact-table td{
        height:5.15px !important;
        min-height:5.15px !important;
        max-height:5.15px !important;
        padding:.25px .8px !important;
    }
}

/* Chromium/WebKit honor these named print page rules when supported. */
@page ffd2Portrait{
    size:Letter portrait;
    margin:.06in;
}
@page ffd2Landscape{
    size:Letter landscape;
    margin:.08in;
}

@media print{
    html.ffd2-print-portrait .ffd2-rankings-page{
        page:ffd2Portrait;
    }
    html.ffd2-print-landscape .ffd2-rankings-page{
        page:ffd2Landscape;
    }
}


/* =========================================================
   PHASE 5.1.44 — RICH PLAYER RANKINGS COLUMNS
   ========================================================= */
.ffd2-rankings-rich-table .rank-col{width:30px !important;}
.ffd2-rankings-rich-table .pos-col{width:32px !important;}
.ffd2-rankings-rich-table .posrank-col{width:38px !important;text-align:center;}
.ffd2-rankings-rich-table .team-col{width:36px !important;}
.ffd2-rankings-rich-table .extra-rank-col{width:34px !important;text-align:center;}
.ffd2-rankings-rich-table .avg-col{width:38px !important;text-align:center;}
.ffd2-rankings-rich-table .sources-col{width:28px !important;text-align:center;}

.ffd2-rankings-rich-table .player-col{
    min-width:0;
    font-weight:700;
}

@media print{
    .ffd2-rankings-rich-table{
        font-size:3.55px !important;
    }

    .ffd2-rankings-rich-table th{
        font-size:3.4px !important;
    }

    .ffd2-rankings-rich-table .rank-col{width:.14in !important;}
    .ffd2-rankings-rich-table .pos-col{width:.14in !important;}
    .ffd2-rankings-rich-table .posrank-col{width:.18in !important;}
    .ffd2-rankings-rich-table .team-col{width:.17in !important;}
    .ffd2-rankings-rich-table .extra-rank-col{width:.16in !important;}
    .ffd2-rankings-rich-table .avg-col{width:.18in !important;}
    .ffd2-rankings-rich-table .sources-col{width:.13in !important;}

    html.ffd2-print-landscape .ffd2-rankings-rich-table{
        font-size:4px !important;
    }

    html.ffd2-print-landscape .ffd2-rankings-rich-table th{
        font-size:3.8px !important;
    }
}


/* =========================================================
   PHASE 5.1.45 — DESKTOP MAIN DRAFT BOARD COLUMN SIZING
   Keep Round fixed/narrow; distribute remaining width across
   the 14 team columns. Mobile/board-only views are untouched.
   ========================================================= */
@media (min-width:901px){
    #ffd2-app.ffd2-app:not(.ffd2-board-only-app) .ffd2-board{
        table-layout:fixed !important;
        width:100% !important;
        min-width:1080px;
    }

    #ffd2-app.ffd2-app:not(.ffd2-board-only-app) .ffd2-board thead th:first-child,
    #ffd2-app.ffd2-app:not(.ffd2-board-only-app) .ffd2-board tbody th{
        width:48px !important;
        min-width:48px !important;
        max-width:48px !important;
    }

    #ffd2-app.ffd2-app:not(.ffd2-board-only-app) .ffd2-board td.ffd2-cell{
        width:auto !important;
        min-width:0 !important;
    }
}

/* PHASE 5.1.48 — native dual roster */
.ffd5-dual-roster-panel{overflow:visible!important}.ffd5-roster-columns{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;width:100%;align-items:start}.ffd5-roster-column{min-width:0;background:var(--panel);border:1px solid var(--border);border-radius:12px;overflow:hidden}.ffd5-roster-column .ffd2-panel-heading{min-height:68px}.ffd5-locked-team{height:var(--ffd31-control-h,38px);margin:12px;padding:0 10px;display:flex;align-items:center;border:1px solid var(--border);border-radius:7px;background:#0b1016;color:var(--muted);font-size:10px;font-weight:800;letter-spacing:.06em}.ffd5-roster-column .ffd2-team-select{margin:12px;width:calc(100% - 24px)}@media(max-width:760px){.ffd5-roster-columns{grid-template-columns:1fr}}


/* =========================================================
   PHASE 5.1.53 — COMMISSIONER AUTO DRAFT 10 PICKS
   ========================================================= */
.ffd2-admin button.ffd5-auto-draft-10{
    border-color:#6d5f92;
    color:#dacbff;
    font-weight:900;
}

/* PHASE 5.1.55 — COMMISSIONER MANUAL PLAYER PICK */
.ffd5-manual-player-tool{
  margin:14px 0 0;
  padding:12px;
  border:1px solid var(--border);
  border-radius:10px;
  background:#0b1016;
}
.ffd5-manual-player-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:12px;
  margin-bottom:10px;
}
.ffd5-manual-player-head strong{
  display:block;
  margin-top:3px;
  color:#fff;
  font-size:12px;
}
.ffd5-manual-player-head small{
  color:#8f9aa8;
  font-size:9px;
  text-align:right;
}
.ffd5-manual-player-grid{
  display:grid;
  grid-template-columns:minmax(180px,2fr) minmax(110px,1fr) minmax(110px,1fr) minmax(150px,auto);
  gap:8px;
  align-items:end;
}
.ffd5-manual-player-grid label{
  display:grid;
  gap:4px;
  color:#aeb7c3;
  font-size:9px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.ffd5-manual-player-grid input,
.ffd5-manual-player-grid select{
  width:100%;
  min-height:36px;
  box-sizing:border-box;
  padding:8px 9px;
  border:1px solid var(--border);
  border-radius:7px;
  background:#111821;
  color:#fff;
  font-size:11px;
}
.ffd5-manual-player-grid button{
  min-height:36px;
  white-space:nowrap;
}
@media (max-width:760px){
  .ffd5-manual-player-head{
    display:block;
  }
  .ffd5-manual-player-head small{
    display:block;
    margin-top:5px;
    text-align:left;
  }
  .ffd5-manual-player-grid{
    grid-template-columns:1fr;
  }
  .ffd5-manual-player-grid button{
    width:100%;
  }
}


/* =========================================================
   PHASE 5.1.56 — DRAFT INSIGHTS TICKER
   Uses the current rankings as the first-pass value baseline.
   ========================================================= */
.ffd5-insights{
  margin:12px 0 10px;
  border:1px solid #27364b;
  border-radius:12px;
  background:linear-gradient(135deg,#0d1728,#121d31 70%,#0b1423);
  color:#fff;
  overflow:hidden;
}
.ffd5-insights-heading{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:12px;
  padding:10px 14px 8px;
  border-bottom:1px solid rgba(255,255,255,.08);
}
.ffd5-insights-heading h2{margin:1px 0 0;color:#fff;font-size:16px;line-height:1.1}
.ffd5-insights-heading .ffd2-label{color:#8fd3ff}
.ffd5-insights-note{color:#9ca9bb;font-size:10px;white-space:nowrap}
.ffd5-insights-window{overflow:hidden;padding:10px 0 11px}
.ffd5-insights-track{
  display:flex;
  width:max-content;
  gap:0;
  padding:0;
  will-change:transform;
}
.ffd5-insight-group{
  display:flex;
  flex:none;
  gap:8px;
  padding-left:10px;
}
.ffd5-insight-group:last-child{padding-right:10px}
.ffd5-insights-track.is-scrolling{animation:ffd5InsightTicker 42s linear infinite}
.ffd5-insights:hover .ffd5-insights-track.is-scrolling{animation-play-state:paused}
@keyframes ffd5InsightTicker{
  from{transform:translateX(0)}
  to{transform:translateX(-50%)}
}
.ffd5-insight-card{
  width:218px;
  min-height:128px;
  box-sizing:border-box;
  flex:0 0 218px;
  padding:10px 11px;
  border:1px solid rgba(255,255,255,.10);
  border-radius:9px;
  background:#18253a;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.04);
}
.ffd5-insight-top{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:5px}
.ffd5-insight-pick{font-size:15px;font-weight:900;letter-spacing:.02em;color:#fff}
.ffd5-insight-grade{padding:4px 6px;border-radius:5px;font-size:8px;font-weight:900;letter-spacing:.04em;white-space:nowrap;background:#789;color:#07111e}
.ffd5-insight-player{display:block;font-size:12px;line-height:1.2;color:#fff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ffd5-insight-meta{margin-top:2px;color:#b4c0cf;font-size:9px;font-weight:800}
.ffd5-insight-score-row{display:flex;align-items:baseline;gap:2px;margin-top:7px}
.ffd5-insight-score-row strong{font-size:24px;line-height:1;color:#fff;min-width:30px}
.ffd5-insight-score-row span{font-size:9px;color:#8492a6}
.ffd5-insight-score-row .ffd5-analyst-label{font-size:8px;font-weight:800;letter-spacing:.02em;text-transform:uppercase;margin-left:4px}
.ffd5-insight-score-row em{margin-left:auto;font-style:normal;font-size:9px;font-weight:800;color:#9fb1c8}
.ffd5-insight-card p{margin:6px 0 0;color:#cbd5e1;font-size:9px;line-height:1.35}
.ffd5-insight-card.tone-steal .ffd5-insight-grade,.ffd5-insight-card.tone-good .ffd5-insight-grade{background:#65d47e}
.ffd5-insight-card.tone-fair .ffd5-insight-grade{background:#f1cf55}
.ffd5-insight-card.tone-reach .ffd5-insight-grade{background:#f39a52}
.ffd5-insight-card.tone-big-reach .ffd5-insight-grade{background:#ef6666;color:#fff}
.ffd5-insight-card.tone-unranked .ffd5-insight-grade{background:#9ba8ba}
.ffd5-insight-card.tone-steal .ffd5-insight-score-row em,.ffd5-insight-card.tone-good .ffd5-insight-score-row em{color:#7ce295}
.ffd5-insight-card.tone-reach .ffd5-insight-score-row em,.ffd5-insight-card.tone-big-reach .ffd5-insight-score-row em{color:#ff9d87}
.ffd5-insight-empty{width:calc(100vw - 80px);max-width:900px;padding:8px 14px;color:#aab6c6;font-size:11px}

@media (prefers-reduced-motion:reduce){.ffd5-insights-track.is-scrolling{animation:none}}

@media (max-width:700px){
  .ffd5-insights{margin:10px 0;border-radius:10px}
  .ffd5-insights-heading{padding:9px 10px 7px;align-items:center}
  .ffd5-insights-heading h2{font-size:14px}
  .ffd5-insights-note{font-size:9px}
  .ffd5-insights-window{overflow-x:auto;-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity;padding:9px 0 10px}
  .ffd5-insights-track,.ffd5-insights-track.is-scrolling{animation:none;transform:none;padding:0}
  .ffd5-insight-group{gap:7px;padding-left:10px}
  .ffd5-insight-group:nth-child(2){display:none}
  .ffd5-insight-card{width:156px;flex-basis:156px;min-height:144px;scroll-snap-align:start;padding:9px}
  .ffd5-insight-top{align-items:flex-start;flex-direction:column;gap:5px}
  .ffd5-insight-pick{font-size:16px}
  .ffd5-insight-player{font-size:11px;white-space:normal;min-height:27px}
  .ffd5-insight-score-row strong{font-size:25px}
  .ffd5-insight-card p{font-size:9px}
}


/* Phase 5.1.57 — live ADP/news source status */
.ffd5-insights-note.is-live::before{
  content:"";
  display:inline-block;
  width:7px;
  height:7px;
  border-radius:50%;
  background:#22c55e;
  margin-right:6px;
  box-shadow:0 0 0 3px rgba(34,197,94,.13);
  vertical-align:1px;
}


/* =========================================================
   PHASE 5.1.64 — DESKTOP RECENT PICKS: ANALYST TILE FORMAT
   Desktop mirrors Draft Insights content but remains static.
   Position classes continue to own each tile's color.
   Mobile retains the original Recent Picks layout unchanged.
   ========================================================= */
.ffd4-recent-desktop-analyst{display:none}

@media (min-width:701px){
  .ffd4-recent-top .ffd4-recent-picks{
    grid-template-columns:repeat(5,minmax(0,1fr)) !important;
    overflow:visible !important;
  }
  .ffd4-recent-mobile-original{display:none !important}
  .ffd4-recent-desktop-analyst{
    display:flex;
    flex-direction:column;
    min-width:0;
    height:100%;
  }
  .ffd4-recent-tile{
    min-height:168px !important;
    padding:10px 11px !important;
    justify-content:flex-start !important;
  }
  .ffd4-recent-analyst-top{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:8px;
    margin-bottom:5px;
  }
  .ffd4-recent-analyst-pick{
    font-size:15px;
    line-height:1;
    font-weight:900;
    letter-spacing:.02em;
    color:#fff;
  }
  .ffd4-recent-analyst-grade{
    padding:4px 6px;
    border-radius:5px;
    font-size:8px;
    line-height:1;
    font-weight:900;
    letter-spacing:.04em;
    white-space:nowrap;
    background:#9ba8ba;
    color:#07111e;
  }
  .ffd4-recent-analyst-player{
    display:block;
    font-size:12px !important;
    line-height:1.2 !important;
    text-align:left !important;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  .ffd4-recent-analyst-meta{
    margin-top:2px;
    font-size:9px;
    line-height:1.2;
    font-weight:800;
    color:rgba(255,255,255,.82);
  }
  .ffd4-recent-analyst-score{
    display:flex;
    align-items:baseline;
    gap:6px;
    margin-top:7px;
  }
  .ffd4-recent-analyst-score strong{
    min-width:30px;
    font-size:24px !important;
    line-height:1 !important;
    text-align:left !important;
    color:#fff !important;
  }
  .ffd4-recent-analyst-score span{
    font-size:8px;
    font-weight:800;
    letter-spacing:.02em;
    text-transform:uppercase;
    color:rgba(255,255,255,.68);
  }
  .ffd4-recent-desktop-analyst p{
    margin:6px 0 0;
    font-size:9px;
    line-height:1.35;
    color:rgba(255,255,255,.86);
  }
  .ffd4-recent-analyst-owner{
    margin-top:auto;
    padding-top:7px;
    font-size:8px;
    line-height:1.1;
    font-weight:800;
    color:rgba(255,255,255,.72);
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  .ffd4-recent-tile.tone-steal .ffd4-recent-analyst-grade,
  .ffd4-recent-tile.tone-good .ffd4-recent-analyst-grade{background:#65d47e}
  .ffd4-recent-tile.tone-fair .ffd4-recent-analyst-grade{background:#f1cf55}
  .ffd4-recent-tile.tone-reach .ffd4-recent-analyst-grade{background:#f39a52}
  .ffd4-recent-tile.tone-big-reach .ffd4-recent-analyst-grade{background:#ef6666;color:#fff}
  .ffd4-recent-tile.tone-unranked .ffd4-recent-analyst-grade{background:#9ba8ba}
}

@media (max-width:700px){
  .ffd4-recent-desktop-analyst{display:none !important}
  .ffd4-recent-mobile-original{display:block !important}
}


/* Phase 5.1.65 — Live Analysis position colors.
   Grade badges keep their analyst-grade colors; the card surface carries position identity. */
.ffd5-insight-card.pos-qb{
  background:#16324a;
  border-color:#285a7c;
}
.ffd5-insight-card.pos-rb{
  background:#173a2b;
  border-color:#2d6a4f;
}
.ffd5-insight-card.pos-wr{
  background:#402743;
  border-color:#744678;
}
.ffd5-insight-card.pos-te{
  background:#4a321c;
  border-color:#80572f;
}
.ffd5-insight-card.pos-def{
  background:#28323d;
  border-color:#506273;
}
.ffd5-insight-card.pos-k{
  background:#3b3820;
  border-color:#6c6638;
}
.ffd5-insight-card.pos-punishment{
  background:#4a2027;
  border-color:#7f3844;
}
.ffd5-insight-card.pos-other{
  background:#151c24;
  border-color:#2b3541;
}
.ffd5-insight-card[class*="pos-"] .ffd5-insight-player,
.ffd5-insight-card[class*="pos-"] .ffd5-insight-pick,
.ffd5-insight-card[class*="pos-"] .ffd5-insight-score-row strong{
  color:#f5f7fa;
}
.ffd5-insight-card[class*="pos-"] .ffd5-insight-meta,
.ffd5-insight-card[class*="pos-"] p{
  color:rgba(255,255,255,.84);
}


/* =========================================================
   PHASE 5.1.66 — DESKTOP PLAYER POOL TYPOGRAPHY
   Improve readability only on desktop; mobile rules remain unchanged.
   ========================================================= */
@media (min-width:821px){
  .ffd2-players-panel .ffd2-player-table-header{
    min-height:36px !important;
    font-size:11px !important;
    line-height:1.1 !important;
  }
  .ffd2-players-panel .ffd2-player-table-row{
    min-height:42px !important;
    font-size:12px !important;
  }
  .ffd2-players-panel .ffd2-player-table-row > span,
  .ffd2-players-panel .ffd2-player-table-header > *{
    padding:8px 9px !important;
  }
  .ffd2-players-panel .ffd2-cell-name strong{
    font-size:14px !important;
    line-height:1.15 !important;
    font-weight:800 !important;
  }
  .ffd2-players-panel .ffd2-cell-overall,
  .ffd2-players-panel .ffd2-cell-posrank,
  .ffd2-players-panel .ffd2-cell-team{
    font-size:11px !important;
    line-height:1.1 !important;
  }
  .ffd2-players-panel .ffd2-cell-pos .badge{
    min-width:36px !important;
    height:24px !important;
    font-size:10px !important;
    line-height:24px !important;
  }
}


/* =========================================================
   PHASE 5.1.67 — COMMISSIONER START + DRAFT NIGHT INTRO
   ========================================================= */
.ffd5-start-draft{
  grid-column:1/-1;
  min-height:48px;
  font-size:15px !important;
  font-weight:900 !important;
  letter-spacing:.04em;
  text-transform:uppercase;
  background:linear-gradient(135deg,#1f8d55,#45d985) !important;
  border-color:#64e8a0 !important;
  color:#06150d !important;
}
.ffd5-start-draft[hidden]{display:none !important}

.ffd5-draft-intro[hidden]{display:none !important}
.ffd5-draft-intro{
  position:fixed;
  inset:0;
  z-index:999999;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:20px;
}
.ffd5-draft-intro-backdrop{
  position:absolute;
  inset:0;
  background:rgba(2,5,10,.94);
  backdrop-filter:blur(8px);
}
.ffd5-draft-intro-stage{
  position:relative;
  z-index:1;
  width:min(1000px,94vw);
  max-height:92vh;
  overflow:auto;
  border:1px solid rgba(255,255,255,.14);
  border-radius:18px;
  background:#080c12;
  box-shadow:0 30px 90px rgba(0,0,0,.65);
}
body.ffd5-intro-open{overflow:hidden}
.ffd5-intro-countdown{
  position:relative;
  min-height:560px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  background:
    linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px),
    radial-gradient(circle at center,#242a32 0,#10141a 45%,#030507 100%);
  background-size:38px 38px,38px 38px,auto;
  color:#f5eee1;
}
.ffd5-intro-countdown::before,
.ffd5-intro-countdown::after{
  content:"";
  position:absolute;
  left:50%;
  top:-20%;
  width:1px;
  height:140%;
  background:rgba(255,255,255,.13);
}
.ffd5-intro-countdown::after{transform:rotate(90deg)}
.ffd5-intro-film-label{
  position:relative;
  z-index:2;
  margin-bottom:18px;
  font-size:13px;
  font-weight:900;
  letter-spacing:.26em;
  color:#c6c0b5;
}
.ffd5-intro-number{
  position:relative;
  z-index:2;
  font-family:Georgia,serif;
  font-size:180px;
  line-height:.85;
  font-weight:700;
  color:#eee7da;
  text-shadow:0 4px 30px rgba(0,0,0,.6);
  animation:ffd5CountdownPulse 1s ease-in-out infinite;
}
.ffd5-intro-rings{
  position:absolute;
  width:340px;
  height:340px;
  border:3px solid rgba(238,231,218,.58);
  border-radius:50%;
  box-shadow:
    0 0 0 28px rgba(238,231,218,.08),
    0 0 0 31px rgba(238,231,218,.34);
}
@keyframes ffd5CountdownPulse{
  0%{transform:scale(.82);opacity:.35}
  24%{transform:scale(1);opacity:1}
  100%{transform:scale(1);opacity:1}
}
.ffd5-intro-video-wrap{padding:14px;background:#080c12}
.ffd5-intro-video-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:4px 4px 12px;
}
.ffd5-intro-video-head h2{margin:2px 0 0;font-size:20px;color:#fff}
.ffd5-intro-skip{
  min-height:42px;
  padding:8px 14px;
  border-radius:8px;
  border:1px solid #3a4655;
  background:#151d28;
  color:#fff;
  font-weight:800;
}
.ffd5-intro-player-shell{
  position:relative;
  width:100%;
  aspect-ratio:16/9;
  background:#000;
  overflow:hidden;
  border-radius:12px;
}
#ffd5-intro-player,
#ffd5-intro-player iframe{
  width:100% !important;
  height:100% !important;
}
.ffd5-intro-status{
  margin:10px 4px 2px;
  font-size:10px;
  color:#8f9bae;
}

@media(max-width:700px){
  .ffd5-draft-intro{padding:8px}
  .ffd5-draft-intro-stage{width:100%;border-radius:12px}
  .ffd5-intro-countdown{min-height:390px}
  .ffd5-intro-number{font-size:130px}
  .ffd5-intro-rings{width:250px;height:250px}
  .ffd5-intro-film-label{font-size:9px;letter-spacing:.18em}
  .ffd5-intro-video-head{align-items:flex-start;flex-direction:column}
  .ffd5-intro-skip{width:100%}
}
@media(prefers-reduced-motion:reduce){
  .ffd5-intro-number{animation:none}
}


/* =========================================================
   PHASE 5.1.68 — SHARED COUNTDOWN / VIDEO-IN-CIRCLE
   ========================================================= */
.ffd5-intro-countdown{
  min-height:620px;
  padding:72px 24px 100px;
}
.ffd5-intro-circle-content{
  position:relative;
  z-index:3;
  width:min(72vw,760px);
  aspect-ratio:16/9;
  display:flex;
  align-items:center;
  justify-content:center;
}
.ffd5-intro-number{
  position:relative;
  z-index:4;
}
.ffd5-intro-rings{
  width:min(76vw,800px);
  height:min(76vw,800px);
  max-height:800px;
  pointer-events:none;
}
.ffd5-intro-player-shell{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  aspect-ratio:auto;
  border-radius:50%;
  overflow:hidden;
  background:#000;
  border:3px solid rgba(238,231,218,.58);
  box-shadow:0 0 0 16px rgba(238,231,218,.07),0 12px 60px rgba(0,0,0,.65);
}
#ffd5-intro-player,
#ffd5-intro-player iframe{
  width:100% !important;
  height:100% !important;
  transform:scale(1.22);
}
.ffd5-intro-video-ui{
  position:absolute;
  z-index:5;
  left:18px;
  right:18px;
  bottom:14px;
}
.ffd5-intro-video-head{
  padding:0;
  align-items:end;
}
.ffd5-intro-video-head h2{
  font-size:16px;
  text-shadow:0 2px 12px #000;
}
.ffd5-intro-status{
  margin:7px 0 0;
  text-align:center;
  color:#c8d0dc;
  text-shadow:0 2px 10px #000;
}
.ffd5-intro-skip{
  background:rgba(8,12,18,.88);
  backdrop-filter:blur(6px);
}
@media(max-width:700px){
  .ffd5-intro-countdown{
    min-height:440px;
    padding:60px 10px 92px;
  }
  .ffd5-intro-circle-content{
    width:min(88vw,520px);
  }
  .ffd5-intro-rings{
    width:min(92vw,540px);
    height:min(92vw,540px);
  }
  .ffd5-intro-video-ui{left:10px;right:10px;bottom:10px}
}
