:root{color-scheme:dark;--bg:#101a18;--panel:#192622;--line:#34463d;--text:#eff1e9;--muted:#a5b5ac;--accent:#d9ed8c;--orange:#d9ed8c;--blue:#dce9d2}body{background:var(--bg);color:var(--text)}header{background:#101a18;border-bottom:1px solid var(--line)}.brand{color:#eff1e9}.mark{background:#d9ed8c;color:#182315}.badge{background:#192622;color:#d9ed8c;border-color:#415349}.panel,.dashboard-tabs,.roster-rules,.limitations{background:var(--panel);border-color:var(--line);box-shadow:none}.primary,.secondary,.extension-download{background:#d9ed8c;border-color:#d9ed8c;color:#182315}.primary:hover,.secondary:hover,.extension-download:hover{background:#e8f6b7}.quiet{background:#17241e;color:var(--text);border-color:#415349}.quiet:hover{background:#253a2d}.text,a{color:#d9ed8c}.eyebrow,.step{color:#d9ed8c}h1,h2,h3,summary{color:var(--text)}input,select,textarea{background:#121f1a;border-color:#415349;color:var(--text)}label{color:#d3dbd4}.dashboard-tabs button{color:#a5b5ac}.dashboard-tabs button[aria-selected=true]{border-color:#d9ed8c;color:#d9ed8c;background:#23362a}.dashboard-tabs button:hover{background:#25382d;color:#eff1e9}#analysis-note{background:#17241f;border-color:var(--line);color:#a5b5ac}.metric-row{background:#14211a;border-color:var(--line)}.metric-row>div{border-color:var(--line)}.metric-row strong,.metric-row>div:last-child strong{color:#d9ed8c}.stats .panel{border-left-color:#d9ed8c}.dot-label{color:#d9ed8c}th{background:#24352b;color:#a5b5ac}th,td{border-color:#34463d}tbody tr:nth-child(even){background:#1d2c24}tbody tr:hover{background:#273c2f}.trade-result:not(:empty){background:#14211a;border-color:#d9ed8c}.alert,#message{background:#34402a;color:#e4ebce;border-color:#839264}.danger{background:#231e1b;color:#e4a48d;border-color:#735447}.field{background:repeating-linear-gradient(90deg,#203727 0,#203727 19.8%,#66836366 20%,#203727 20.3%);border-color:#49654a}.yard{color:#8b9d7c}.route{border-color:#d9ed8c}.ball,.field-caption{color:#d9ed8c}footer{background:var(--bg)}.season-roster{table-layout:fixed;min-width:1430px}.season-roster th:first-child,.season-roster td:first-child{width:260px;position:sticky;left:0;z-index:2;background:#192622;box-shadow:1px 0 #415349}.season-roster thead th:first-child{z-index:4;background:#24352b}.season-roster thead th:not(:first-child){width:65px;text-align:center}.season-roster .player-identity{height:59px;padding:4px 10px;display:table-cell}.player-identity>img{width:48px;height:48px;object-fit:contain;vertical-align:middle;margin-right:10px}.player-identity>span{display:inline-block;vertical-align:middle;max-width:180px}.player-identity a{display:block;font-size:13px;font-weight:500;color:#a9d5ff;text-decoration:none;overflow-wrap:anywhere}.player-identity a:hover{text-decoration:underline}.player-identity small{display:block;font-size:11px;color:#a5b5ac;margin-top:2px}.season-roster .week-score{text-align:center;font-variant-numeric:tabular-nums;font-weight:400;white-space:nowrap;padding:8px 4px}.week-score strong{font-weight:800;color:#f3f7ea}.week-score>span{font-weight:400;color:#a5b5ac}.week-score.current-week{background:#d9ed8c0a}.week-score.bye{font-size:10px;color:#789080}.season-roster .position-divider th{position:static;background:#2b3d31;color:#d9ed8c;font-size:10px;letter-spacing:2px;padding:6px 12px;text-align:left;width:auto}.roster-panel .table-wrap{max-height:calc(100dvh - 345px)}#roster-legend{margin:10px 0 0;font-size:11px}@media(max-width:850px){.season-roster th:first-child,.season-roster td:first-child{width:220px}.player-identity>span{max-width:145px}.player-identity>img{width:40px;height:40px;margin-right:6px}.roster-panel .table-wrap{max-height:60dvh}}
.season-roster .best-week-row td{background:#304631;border-bottom:2px solid #d9ed8c;color:#eff1e9;padding:12px 5px}.season-roster .best-week-row td:first-child{font-size:11px;letter-spacing:1px;padding-left:12px;background:#304631}.estimated-score{text-decoration:underline dotted;text-underline-offset:4px}.slotted-lineup{min-width:850px}.slotted-lineup td:nth-child(3){min-width:250px;color:#d9ed8c;white-space:normal}.slotted-lineup .position-divider th{position:static;background:#2b3d31;color:#d9ed8c;font-size:10px;letter-spacing:2px}.slotted-lineup td:nth-child(4),.slotted-lineup td:nth-child(5){font-variant-numeric:tabular-nums;text-align:right}
.lineup-player{min-width:210px}.lineup-player img{width:38px;height:38px;object-fit:contain;vertical-align:middle;margin-right:8px}.lineup-player>span{display:inline-block;vertical-align:middle}.lineup-player small{display:block;font-size:10px;color:#a5b5ac;margin-top:3px}.lineup-total td{background:#2b3d31;font-weight:700;font-size:11px}.lineup-total td:nth-child(2),.lineup-total td:nth-child(3){text-align:right}

.lineup-week-control{display:flex;align-items:center;gap:12px;margin:8px 0}.lineup-week-control label{margin:0}.lineup-week-control select{width:auto;min-width:180px}
.slotted-lineup th:nth-child(4),.slotted-lineup th:nth-child(5),.slotted-lineup td:nth-child(4),.slotted-lineup td:nth-child(5),.slotted-lineup .lineup-total td:nth-child(2),.slotted-lineup .lineup-total td:nth-child(3){text-align:left}
.matchup-toggle{display:flex;align-items:center;gap:8px;margin-left:auto!important;white-space:nowrap}.matchup-toggle input{width:16px;height:16px}.matchup-table{min-width:850px}.matchup-table th,.matchup-table td{text-align:left}.matchup-table td:nth-child(2),.matchup-table td:nth-child(5){min-width:210px;white-space:normal}.matchup-table th:nth-child(5),.matchup-table td:nth-child(5){border-left:2px solid var(--line)}.matchup-panel h3{margin:14px 0 8px}
.season-roster .best-week-row:first-child td{border-top:2px solid #d9ed8c}
.lineup-player a,.matchup-table a{color:#a9d5ff;text-decoration:none}.lineup-player a:hover,.matchup-table a:hover{text-decoration:underline}
.player-news-dialog{color:var(--text);background:var(--panel);border:1px solid var(--line);border-radius:12px;width:min(700px,calc(100vw - 32px));max-height:85dvh;padding:22px;box-shadow:0 20px 80px #0008}.player-news-dialog::backdrop{background:#0009}.player-news-heading{display:flex;align-items:center;justify-content:space-between;gap:18px}.player-news-heading h2{margin:0;font-size:22px}.player-news-content article{padding:18px 0;border-top:1px solid var(--line)}.player-news-content article:first-child{margin-top:16px}.player-news-content h3{font-size:17px;margin:0 0 8px;letter-spacing:normal}.player-news-content p{white-space:normal;line-height:1.6}.player-news-content a{color:#a9d5ff}
.player-news-content>h3{margin:20px 0 16px;font-size:20px}.outlook-projection{display:flex;flex-direction:column;gap:5px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:16px 0}.outlook-projection span{font-weight:700}.outlook-projection strong{font-size:28px;color:var(--accent)}.outlook-text{font-size:15px;line-height:1.7!important;white-space:pre-line!important}
.trade-finder{padding-bottom:22px;margin-bottom:24px;border-bottom:1px solid var(--line)}.trade-opportunity{padding:18px;border:1px solid var(--line);border-radius:8px;margin-top:14px}.trade-opportunity h3{font-size:18px;margin:0 0 10px;letter-spacing:normal}.trade-gains{color:var(--accent);font-weight:700}.trade-opportunity details{margin:14px 0}.trade-opportunity td{text-align:left}
body.signed-in header{display:grid;grid-template-columns:minmax(180px,1fr) minmax(0,2fr) minmax(180px,1fr);gap:16px;height:auto;min-height:64px}body.signed-in header>.brand{grid-column:1;grid-row:1;justify-self:start}body.signed-in header>#account{grid-column:3;grid-row:1;justify-self:end}.header-league{grid-column:2;grid-row:1;text-align:center;min-width:0}.header-league #league-meta{font-size:10px;letter-spacing:1.3px;color:var(--accent);margin:0 0 3px}.header-league #league-name{font-size:18px;line-height:1.2;letter-spacing:0;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.signed-in .league-heading{margin-bottom:10px;min-height:0}.signed-in .league-heading #last-sync{margin:0;font-size:11px}@media(max-width:850px){body.signed-in header{grid-template-columns:1fr auto;gap:8px}body.signed-in header>#account{grid-column:2}.header-league{grid-column:1/-1;grid-row:2;padding-bottom:6px}.header-league #league-name{font-size:16px}}
.trade-player-weekly{margin:16px 0}.trade-player-weekly h4{margin:0 0 10px;font-size:14px}.trade-player-weeks{margin-top:0}.trade-player-weeks .week-score{text-align:center!important}.trade-player-weekly .table-wrap{max-width:100%}.trade-player-weekly .hint{margin:8px 0;font-size:11px}
.trade-player-weeks .trade-best-week{background:#d9ed8c24!important;box-shadow:inset 0 -2px #d9ed8c}.trade-player-weeks .trade-best-week>span,.trade-player-weeks .trade-best-week>strong{color:#e9f6b8}
.trade-player-weeks .comparison-divider th{background:#26312e;color:#a5b5ac;letter-spacing:1px}.trade-player-weeks .comparison-player-row>td{background:#16201d}.trade-player-weeks .comparison-player-row>.player-identity{border-left:3px solid #71867c}.trade-player-weeks .comparison-player-badge{display:inline-block;font-size:9px;letter-spacing:.7px;padding:1px 5px;margin-top:3px;border:1px solid #71867c;border-radius:3px;color:#b6c5be}.trade-player-weeks .comparison-player-row .trade-best-week{background:#d9ed8c24!important}
.trade-player-weeks .trade-displaced-week{background:#eda76a24!important;box-shadow:inset 0 -2px #eda76a;outline:none}.trade-player-weeks .trade-displaced-week>span,.trade-player-weeks .trade-displaced-week>strong{color:#ffd0a8}
.trade-full-roster{margin:12px 0!important;border-top:1px solid var(--line);padding-top:12px}.trade-full-roster>summary{cursor:pointer;color:var(--accent);font-size:13px}.trade-player-weeks .trade-out-badge{color:#ffd0a8;border-color:#eda76a}.trade-player-weeks .trade-in-badge{color:#e9f6b8;border-color:#d9ed8c}
.season-roster .roster-optimal-week{background:#d9ed8c24!important;box-shadow:inset 0 -2px #d9ed8c}.season-roster .roster-optimal-week>span,.season-roster .roster-optimal-week>strong{color:#e9f6b8}
.season-roster .playoff-start{border-left:2px solid #7db8ff!important}.season-roster .playoff-end{border-right:2px solid #7db8ff!important}.season-roster thead .playoff-week{background:#203747;color:#c1ddff}.playoff-marker{display:block;color:#91c5ff;font-size:8px;line-height:1.3;letter-spacing:.4px;margin-top:3px;white-space:nowrap}
.season-roster .current-week{border-left:2px solid #79bfff!important;border-right:2px solid #79bfff!important}.season-roster td.current-week:not(.roster-optimal-week):not(.trade-best-week):not(.trade-displaced-week){background:#24435399!important}.season-roster thead th.current-week{background:#234d70!important;color:#fff}.current-week-marker{display:block;color:#baddff;font-size:8px;line-height:1.3;letter-spacing:.5px;margin-top:3px}.current-week-row>td{background:#24435399}.current-week-caption{text-align:left;color:#baddff;font-size:11px;font-weight:600;padding:8px 0}.current-week-caption.current-week-active{color:#baddff;border-left:3px solid #79bfff;padding-left:8px}
.playoff-bracket{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px;align-items:start;margin-top:20px}.playoff-round>h3{font-size:19px;margin:0 0 6px;letter-spacing:normal}.playoff-match{border:1px solid var(--line);border-radius:8px;padding:14px;margin:12px 0;background:#14211b}.playoff-team{display:flex;justify-content:space-between;gap:14px;padding:10px 0}.playoff-team>span{overflow-wrap:anywhere}.playoff-team>strong{white-space:nowrap}.playoff-winner{color:var(--accent);font-weight:700}.projected-champion{color:var(--accent);padding:14px;border:1px solid var(--accent);border-radius:6px;font-weight:700}.playoff-match h4{font-size:12px;margin:15px 0 0}.playoff-match table{min-width:300px}.playoff-match th,.playoff-match td{padding:8px;font-size:11px}.playoff-match details{font-size:12px}.playoff-match a{color:#a9d5ff}
table th,table td{border:1px solid var(--line)}
.season-simulation{margin:20px 0 28px}.season-simulation>h3{font-size:19px;letter-spacing:normal}.season-simulation-table{min-width:1000px;white-space:normal}.season-simulation-table th,.season-simulation-table td{padding:10px;font-size:12px;min-width:100px}.season-simulation-table td:nth-child(2){min-width:190px;position:sticky;left:0;background:var(--panel);z-index:1}.season-simulation-table small{display:block;font-size:10px;margin-top:4px;color:var(--muted)}.season-simulation-table .simulated-win{background:#d9ed8c24;color:#e9f6b8;box-shadow:inset 0 -2px #d9ed8c}.season-simulation-table .simulated-loss{background:#eda76a24;color:#ffd0a8;box-shadow:inset 0 -2px #eda76a}.season-simulation-table .current-week{border-left:2px solid #79bfff!important;border-right:2px solid #79bfff!important}.season-simulation-table th.current-week{background:#234d70;color:#fff}.season-simulation-table .simulated-qualifier>td:first-child{color:var(--accent);font-weight:800}
.simulation-top{display:grid;grid-template-columns:minmax(280px,.8fr) minmax(0,2fr);gap:28px;align-items:start}.simulation-intro>h2{margin-top:0}.simulation-intro>p{max-width:600px}.simulation-extra details{margin:10px 0;font-size:11px}.simulation-extra .hint{font-size:11px}.simulation-preview{min-width:0}.simulation-preview .projected-champion{font-size:12px;padding:9px 12px;margin:0 0 12px}.simulation-preview .playoff-bracket{margin-top:0;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:16px}.simulation-preview .playoff-match{margin:8px 0;padding:10px}.simulation-preview .playoff-team{padding:6px 0;font-size:12px}.simulation-preview .playoff-round>h3{font-size:16px}.simulation-preview .playoff-match>.hint{font-size:10px;margin:6px 0}.simulation-top+.season-simulation{margin-top:18px}@media(max-width:1100px){.simulation-top{grid-template-columns:1fr}.simulation-intro>p{max-width:none}}

.waiver-lineup-gain{display:block;font-size:10px;margin-top:4px;white-space:nowrap}.trade-player-weeks .week-score:has(.waiver-lineup-gain){min-width:90px}

.waiver-sort{background:none;border:0;color:inherit;font:inherit;letter-spacing:inherit;padding:0;cursor:pointer;white-space:nowrap}.waiver-sort:hover{text-decoration:underline}th[aria-sort=descending]>.waiver-sort:after{content:' \2193'}

.league-team-identity{display:inline-flex;align-items:center;gap:10px}.league-team-icon,.league-team-fallback{width:34px;height:34px;flex:0 0 34px;object-fit:contain;border-radius:5px}.league-team-fallback{display:inline-flex;align-items:center;justify-content:center;background:#263d31;color:var(--accent);font-size:11px;font-weight:700}.league-team-fallback[hidden]{display:none}

.signed-in .dashboard-toolbar{display:flex;align-items:center;gap:14px;margin:0 0 12px}.dashboard-toolbar>.stats{display:grid;grid-template-columns:minmax(180px,1.4fr) repeat(2,minmax(130px,1fr));flex:1;gap:10px;margin:0}.dashboard-toolbar>.stats .panel{padding:9px 12px;min-height:58px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:2px}.dashboard-toolbar>.stats h3{font-size:20px;margin:0;line-height:1.2}.dashboard-toolbar>.stats p{font-size:10px}.dashboard-toolbar>.stats .panel:first-child h3{font-size:21px}.dashboard-toolbar>.actions{flex:0 0 auto}.dashboard-toolbar>div:first-child{max-width:170px}#account #team-select{width:clamp(140px,15vw,245px);margin:0;padding:7px 9px;font-size:12px}#account{gap:12px}@media(max-width:1000px){.signed-in .dashboard-toolbar{flex-wrap:wrap}.dashboard-toolbar>.stats{order:-1;flex-basis:100%}.dashboard-toolbar>div:first-child{max-width:none;flex:1}}@media(max-width:600px){.dashboard-toolbar>.stats{grid-template-columns:1fr 1fr}.dashboard-toolbar>.stats .panel:first-child{grid-column:1/-1}#account #team-select{width:135px}.header-league{display:none}}

.season-roster .player-identity{height:auto;padding:5px 10px;white-space:nowrap}.player-identity>img,.lineup-player img,.compact-player-identity img{width:24px;height:24px;object-fit:contain;vertical-align:middle;margin-right:7px}.player-identity>span,.lineup-player>span{display:inline;max-width:none;white-space:nowrap}.player-identity a,.player-identity small,.lineup-player a,.lineup-player small{display:inline;white-space:nowrap;overflow-wrap:normal;margin-top:0}.player-identity small:before,.lineup-player small:before,.compact-player-identity small:before{content:' \00b7 ';white-space:pre}.player-identity .comparison-player-badge{display:inline-block;margin-left:7px}.player-identity .comparison-player-badge:before{content:none}.compact-player-identity{display:inline-flex;align-items:center;white-space:nowrap}.compact-player-identity small{font-size:11px;color:#a5b5ac}.slotted-lineup td,.matchup-table td{padding-top:6px;padding-bottom:6px}.season-roster .week-score{padding-top:5px;padding-bottom:5px}

#trade-result.trade-result{white-space:normal}#proposal-review{margin:0 0 20px}

.trade-negotiation{margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}.negotiation-message{white-space:pre-wrap;line-height:1.6;max-width:850px}.trade-negotiation .hint{margin:7px 0}

#account .account-menu{position:relative;margin:0;padding:0;border:0}.account-menu>summary{list-style:none;display:flex;align-items:center;justify-content:center;width:38px;height:38px;border:1px solid var(--line);border-radius:6px;color:var(--text);cursor:pointer}.account-menu>summary::-webkit-details-marker{display:none}.account-menu>summary:hover{background:#263d31}.account-menu-content{position:absolute;right:0;top:46px;z-index:100;background:#192b23;border:1px solid var(--line);box-shadow:0 12px 30px #0008;border-radius:8px;padding:16px;width:290px;max-width:calc(100vw - 32px);display:flex;flex-direction:column;gap:12px;text-align:left}.account-menu-content #username{max-width:none;overflow:visible;font-size:14px;font-weight:700;color:var(--text)}.account-menu-league{display:flex;flex-direction:column;gap:10px}.account-menu-league label{margin:0;font-size:11px;color:var(--muted)}#account .account-menu #team-select{width:100%;margin:0}.account-menu-content #last-sync{font-size:11px;color:var(--muted);margin:0}.account-menu-content button{width:100%;margin:0;text-align:left}.account-menu-content #logout{color:var(--text);border-color:var(--line)}.signed-in .dashboard-toolbar{display:block}.dashboard-toolbar>.stats{width:100%}.dashboard-toolbar>.stats .panel{min-height:58px}

.trade-player-gain{display:block;font-size:10px;margin-top:3px;color:inherit}.trade-question textarea{margin-top:12px}.trade-question .negotiation-message p{white-space:pre-wrap}

#connection-dialog{width:min(1050px,calc(100vw - 32px));max-height:90dvh;overflow:auto;background:#14231c;color:var(--text);border:1px solid var(--line);border-radius:10px;padding:22px}#connection-dialog::backdrop{background:#000a}.connection-dialog-header{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:18px}.connection-dialog-header h2{margin:0;font-size:22px}#connection-dialog .dashboard-view{padding:0;border:0;background:none}#connection-dialog #connect-area{margin:0;gap:20px}#connection-dialog #ai-settings{margin:0}#connection-dialog #view-connections{display:grid;grid-template-columns:1.2fr 1fr;gap:20px}#connection-dialog .connection-controls{grid-column:1/-1}@media(max-width:800px){#connection-dialog #view-connections{grid-template-columns:1fr}}

.dashboard-toolbar>.stats{grid-template-columns:minmax(190px,1fr) minmax(320px,2fr) minmax(190px,1fr);align-items:stretch;gap:16px}.dashboard-toolbar>.stats .team-summary{grid-column:1;padding:12px 16px}.dashboard-toolbar>.stats .team-summary .team-season-record{display:flex;align-items:baseline;gap:9px;font-size:11px;margin:5px 0 0;color:var(--muted)}.team-season-record strong{font-size:15px;color:var(--text);font-variant-numeric:tabular-nums}.dashboard-toolbar>.stats .simulation-summary{grid-column:2;align-items:center;justify-content:center;text-align:center;padding:10px 22px;border:1px solid #d9ed8c66;border-radius:9px;background:linear-gradient(120deg,#263d31,#1b2d24);box-shadow:inset 0 1px 0 #d9ed8c12;gap:3px}.dashboard-toolbar>.stats .simulation-summary>span{font-size:10px;letter-spacing:1.6px;color:var(--accent)}.dashboard-toolbar>.stats .simulation-summary #simulated-finish{font-size:30px;line-height:1.1;color:var(--accent);font-weight:800}.dashboard-toolbar>.stats .simulation-summary p{font-size:11px;margin:0}@media(max-width:900px){.dashboard-toolbar>.stats{grid-template-columns:minmax(180px,1fr) minmax(250px,2fr)}}@media(max-width:600px){.dashboard-toolbar>.stats{grid-template-columns:1fr}.dashboard-toolbar>.stats .team-summary,.dashboard-toolbar>.stats .simulation-summary{grid-column:1}}

.dashboard-toolbar>.stats{max-width:none!important;grid-template-columns:minmax(0,1fr) minmax(320px,2fr) minmax(0,1fr)}@media(max-width:900px){.dashboard-toolbar>.stats{grid-template-columns:minmax(0,1fr) minmax(280px,2fr) minmax(0,1fr)}.dashboard-toolbar>.stats .team-summary{min-width:0}.team-summary #team-name{overflow-wrap:anywhere}}@media(max-width:600px){.dashboard-toolbar>.stats{grid-template-columns:1fr}.dashboard-toolbar>.stats .team-summary,.dashboard-toolbar>.stats .simulation-summary{grid-column:1}}

#coach-progress:empty,#coach-output:empty{display:none}

.lineup-impact-total td{background:#253b2e;font-weight:700}.lineup-impact-total td:first-child{font-size:10px;letter-spacing:.6px}.trade-player-weeks .trade-player-gain{display:none}

.trade-player-weeks .trade-season-total{position:sticky;right:0;z-index:2;min-width:85px;border-left:2px solid #789064;background:#263b2e;font-weight:700}.trade-player-weeks thead .trade-season-total{z-index:5;background:#304631}

.forecast-total-range{display:block;font-size:9px;letter-spacing:0;margin-top:4px;color:var(--muted)}

.trade-overlay{width:min(800px,calc(100vw - 32px));max-height:92dvh;overflow:auto;border:1px solid var(--line);border-radius:10px;background:#14231c;color:var(--text);padding:22px}.trade-overlay-wide{width:min(1600px,calc(100vw - 32px))}.trade-overlay::backdrop{background:#000b}.trade-overlay-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:18px}.trade-overlay-heading h2{font-size:20px;margin:0}.trade-overlay .table-wrap{max-height:calc(90dvh - 170px)}.trade-overlay-trigger{display:inline-block;margin:10px 9px 0 0}.trade-overlay .trade-question{margin:0}.trade-overlay .trade-negotiation{border:0;margin:0;padding:0}.trade-overlay #proposal-review{margin:0}

.trade-position-filters{border:1px solid var(--line);border-radius:6px;padding:10px 14px;margin:14px 0;display:flex;gap:18px;flex-wrap:wrap;width:fit-content}.trade-position-filters legend{font-size:11px;color:var(--muted);padding:0 5px}.trade-position-filters label{display:flex;align-items:center;gap:6px;margin:0;font-size:12px;cursor:pointer}.trade-position-filters input{width:15px;height:15px;margin:0;padding:0;accent-color:var(--accent)}

.trade-position-filters .hint{flex-basis:100%;margin:0;font-size:11px}

.trade-overlay{width:min(1100px,calc(100vw - 24px));max-width:none;max-height:calc(100dvh - 24px);padding:20px}.trade-overlay-wide{width:calc(100vw - 24px)}.trade-overlay .table-wrap{max-height:calc(100dvh - 190px)}.trade-overlay .trade-question textarea{min-height:110px;font-size:14px}.trade-overlay .negotiation-message{max-width:none;font-size:14px}.trade-overlay-heading h2{font-size:22px}@media(max-width:600px){.trade-overlay{width:calc(100vw - 12px);padding:12px;max-height:calc(100dvh - 12px)}.trade-overlay-heading h2{font-size:18px}}

.trade-search-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:14px 0}.trade-search-actions>button{margin:0!important}

.lineup-apply-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:12px 0}.lineup-apply-actions button{margin:0!important}.lineup-apply-week{border-top:1px solid var(--line);padding:10px 0}.lineup-apply-week h3{margin:0 0 5px;font-size:16px}.lineup-apply-week p{font-size:12px}.lineup-apply-week ul{margin:5px 0;padding-left:22px}.lineup-apply-week li{padding:3px 0}.lineup-apply-dialog>button{margin-top:14px}

.pickup-action { margin-left: 10px; padding: 5px 9px; white-space: nowrap; }
.pickup-dialog { width: min(720px, calc(100vw - 24px)); }
.pickup-dialog label { display: grid; gap: 8px; margin-bottom: 16px; }
.pickup-dialog select { width: 100%; }

.pickup-dialog { width: calc(100vw - 24px); }
.pickup-comparison .player-identity { min-width: 360px; }
.pickup-comparison input[type=radio] { width: 17px; height: 17px; flex: 0 0 auto; accent-color: var(--accent, #d5ed83); }
.pickup-comparison .pickup-player-note { font-size: 10px; opacity: .8; margin-left: 8px; }
.pickup-incoming-row .player-identity { border-left: 3px solid #d5ed83; }
.pickup-selected-drop .player-identity { border-left: 3px solid #e89745; background: #513c24; }
.pickup-comparison label { display: flex; align-items: center; gap: 10px; margin: 0; }
.pickup-confirmation { margin-top: 14px; }
.pickup-confirmation button { margin-right: 12px; }

.players-availability { display: flex; align-items: center; gap: 10px; margin: 12px 0; }
.players-availability select { width: auto; min-width: 170px; }
.pickup-comparison input[type=checkbox] { width: 17px; height: 17px; flex: 0 0 auto; accent-color: var(--accent, #d5ed83); }

.players-table { table-layout: fixed; width: 100%; min-width: calc(var(--player-column-width, 300px) + var(--player-weeks, 18) * 65px); }
.players-table th:first-child, .players-table td:first-child { width: var(--player-column-width, 300px); min-width: 0; }
.players-table thead th:not(:first-child), .players-table .week-score { width: auto; min-width: 0; }
.players-player-content { display: flex; align-items: center; gap: 10px; width: 100%; white-space: nowrap; }
.players-player-content > img { width: 24px; height: 24px; object-fit: contain; flex: 0 0 24px; }
.players-player-text { flex: 0 0 auto; white-space: nowrap; }
.players-player-content > .pickup-action { margin-left: auto; flex: 0 0 auto; }

.player-week-matchup { display: block; font-size: 9px; line-height: 1.35; color: var(--muted); white-space: nowrap; margin-top: 2px; }

.players-filters { display: flex; align-items: center; flex-wrap: wrap; gap: 12px 22px; }
.players-filters .players-availability { margin: 10px 0; }

.players-optimal-filter { display: flex; align-items: center; gap: 9px; margin: 10px 0; white-space: nowrap; }
.players-optimal-filter input { width: 17px; height: 17px; padding: 0; accent-color: var(--accent); }

.league-split { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 28px; align-items: start; }
.league-split h3 { margin: 0 0 12px; }
.league-standings table { min-width: 0; width: 100%; }
.league-standings .table-wrap { max-height: none; }
#league-matchup-cards { display: grid; gap: 12px; }
.league-matchup-card { border: 1px solid var(--line); border-radius: 8px; padding: 12px 16px; background: #14211b; }
.league-your-matchup { border-color: var(--accent); }
.league-matchup-label { margin: 0 0 6px; color: var(--muted); font-size: 10px; text-transform: uppercase; letter-spacing: .7px; }
.league-matchup-team { display: flex; align-items: center; justify-content: space-between; gap: 15px; padding: 6px 0; }
.league-matchup-team + .league-matchup-team { border-top: 1px solid var(--line); }
.league-matchup-identity { min-width: 0; display: flex; align-items: center; flex-wrap: wrap; gap: 6px 12px; }
.league-matchup-identity small { color: var(--muted); font-size: 11px; }
.league-matchup-team > strong { font-size: 19px; font-variant-numeric: tabular-nums; }
.league-matchup-winner > strong { color: var(--accent); }
@media(max-width:1000px) { .league-split { grid-template-columns: minmax(0,1fr); } }

#league-matchup-cards { grid-template-columns: repeat(2,minmax(0,1fr)); align-items: start; }
.league-matchup-card { padding: 10px 12px; min-width: 0; }
.league-matchup-team, .league-matchup-columns { display: grid; grid-template-columns: minmax(0,1fr) 48px 58px; gap: 8px; align-items: center; }
.league-matchup-columns span:not(:first-child), .league-matchup-team > strong { text-align: right; }
.league-matchup-team > strong { font-size: 16px; }
.league-matchup-team .league-team-identity { min-width: 0; gap: 6px; overflow-wrap: anywhere; }
.league-matchup-team .league-team-icon, .league-matchup-team .league-team-fallback { width: 26px; height: 26px; flex-basis: 26px; }
.league-matchup-team .league-matchup-identity { display: flex; flex-direction: row; flex-wrap: nowrap; align-items: center; gap: 6px; font-size: 12px; }
.league-matchup-forecast-winner { background: #d9ed8c20; box-shadow: inset 2px 0 var(--accent); padding-left: 6px; }
.league-matchup-forecast-winner > .league-matchup-projection { color: var(--accent); }
@media(max-width:650px) { #league-matchup-cards { grid-template-columns: minmax(0,1fr); } }

.league-standings .table-wrap { border: 1px solid var(--line); border-radius: 8px; overflow: auto; }
.league-standings table { margin: 0; }
.league-standings tbody tr:last-child td { border-bottom: 0; }

.team-summary-identity { display: flex; align-items: center; gap: 13px; min-width: 0; }
.team-summary-text { min-width: 0; }
.team-summary-identity #team-name { margin: 0; }
#team-summary-mascot { display: flex; align-items: center; flex: 0 0 48px; }
#team-summary-mascot .league-team-icon, #team-summary-mascot .league-team-fallback { width: 48px; height: 48px; flex-basis: 48px; border-radius: 7px; }
#team-summary-mascot .league-team-fallback { font-size: 16px; }

.season-view-tabs { margin: 0 0 18px; position: static; }
.season-view-tabs button { flex: 0 0 auto; }
#season-view-regular .season-simulation { margin-top: 0; }

.table-wrap { overscroll-behavior: auto; }

.brand { gap: 11px; }
.brand-logo { width: 42px; height: 42px; object-fit: contain; flex: 0 0 auto; }
.brand-wordmark { font-weight: 800; letter-spacing: 1.3px; white-space: nowrap; }
@media(max-width:520px) { .brand-logo { width: 34px; height: 34px; } .brand-wordmark { letter-spacing: .7px; } }

#lineup-panel { position: relative; }
#lineup-summary { border-radius: 8px; overflow: hidden; margin: 12px 0; }
#lineup-summary:empty { display: none; }
#lineup-summary > div { padding: 8px 10px; }
#lineup-summary strong { font-size: 26px; line-height: 1.1; }
#lineup-summary span { font-size: 11px; margin-top: 4px; }
@media(min-width:1400px) { #lineup-summary { position: absolute; top: 28px; left: 50%; transform: translateX(-50%); width: 360px; margin: 0; } }

#lineup-summary > div { text-align: center; }

#lineup-panel table > caption.current-week-caption { display: none; }

.league-matchup-card[role=button] { cursor: pointer; }
.league-matchup-card[role=button]:hover { background: #20342a; }
.league-matchup-card[role=button]:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
.league-matchup-dialog .matchup-toggle { margin: 0 0 14px; }

.manual-lineup-move { padding: 4px 10px; margin-right: 9px; font-size: 12px; }
.manual-move-hint { font-size: 11px; color: var(--muted); }
.manual-move-options { display: grid; gap: 9px; }
.manual-move-options button { text-align: left; }

.manual-inline-controls { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; padding: 10px 12px; margin: 8px 0; border: 1px solid var(--line); border-radius: 7px; font-size: 12px; }
.manual-inline-controls button { padding: 5px 10px; white-space: nowrap; }
.manual-selected-player > td { background: #d9ed8c15; }
.manual-eligible-player > td { background: #d9ed8c08; }
.manual-selected-player > td:first-child, .manual-eligible-player > td:first-child { box-shadow: inset 3px 0 var(--accent); }

.lineup-player-content{display:flex;align-items:center;gap:0;white-space:nowrap}.manual-move-host{margin-left:auto;padding-left:14px;flex-shrink:0}.manual-move-host .manual-lineup-move{margin-right:0}.slotted-lineup td:nth-child(3){color:#d9ed8c}

.manual-inline-controls[hidden]{display:none}

#lineup-panel .manual-inline-controls button{margin:0;height:34px;padding:5px 12px;display:inline-flex;align-items:center;justify-content:center;line-height:1.2;border-width:1px;border-style:solid}#lineup-panel .manual-inline-controls .secondary{border-color:transparent}

.lineup-preview-buttons{display:flex;align-items:center;gap:10px;margin-top:16px}.lineup-preview-buttons button{margin:0;height:36px;padding:6px 14px}

.lineup-week-control .lineup-apply-actions{margin:0;flex-shrink:0}.lineup-week-control{flex-wrap:wrap}

.league-transactions{margin-top:22px;border-top:1px solid var(--line);padding-top:12px}.league-transactions .table-wrap{max-height:380px;border:1px solid var(--line);border-radius:9px}.league-transactions td{padding:8px 12px}.league-transactions td:first-child{white-space:nowrap}

.league-split{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}#league-matchup-cards{grid-template-columns:minmax(0,1fr)}.league-standings th,.league-standings td{padding:8px 9px;font-size:12px}.league-standings .league-team-identity{gap:6px}.league-transactions{margin:0;padding:0;border:0}#league-transactions{display:grid;gap:12px;max-height:850px;overflow:auto;overscroll-behavior:auto;padding-right:3px}.league-transaction-card{border:1px solid var(--line);border-radius:8px;padding:10px 14px;background:#14211b}.league-transaction-time{margin:0 0 7px;font-size:10px;color:var(--muted)}.league-transaction-action+.league-transaction-action{border-top:1px solid var(--line);margin-top:9px;padding-top:9px}.league-transaction-team{display:flex;align-items:center;gap:7px;flex-wrap:wrap;font-size:12px}.league-transaction-player{display:flex;align-items:center;gap:7px;margin-top:6px;font-size:12px;flex-wrap:wrap}.league-transaction-player img{width:24px;height:24px;object-fit:contain}.transaction-badge{font-size:10px;padding:2px 7px;border-radius:12px;font-weight:700;white-space:nowrap}.transaction-add{background:#d9ed8c20;color:#d9ed8c}.transaction-drop{background:#eaa15b20;color:#eaa15b}@media(max-width:1100px){.league-split{grid-template-columns:repeat(2,minmax(0,1fr))}.league-transactions{grid-column:1/-1}#league-transactions{grid-template-columns:repeat(2,minmax(0,1fr));max-height:none}}@media(max-width:650px){.league-split{grid-template-columns:minmax(0,1fr)}#league-transactions{grid-template-columns:minmax(0,1fr)}}

.league-matchup-identity{flex-wrap:nowrap;gap:8px}.league-matchup-identity>.league-team-identity{min-width:0;flex:0 1 auto}.league-matchup-identity>.league-team-identity>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.league-matchup-identity>small{flex-shrink:0;white-space:nowrap}

.league-matchup-card{padding:8px 12px}.league-matchup-label{margin-bottom:3px}.league-matchup-team{padding:4px 0}.league-matchup-team .league-team-icon,.league-matchup-team .league-team-fallback{width:24px;height:24px;flex-basis:24px}#league-matchup-cards{gap:9px}

.league-transaction-heading{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:7px}.league-transaction-heading .league-transaction-time{order:2;margin:0 0 0 auto;text-align:right;white-space:nowrap}.league-transaction-heading .league-transaction-team{order:1}.league-transaction-action:first-of-type .league-transaction-player{margin-top:0}

.transaction-trade-route{display:flex;align-items:center;gap:6px 9px;flex-wrap:wrap;flex-basis:100%;margin-top:5px}.transaction-trade-route>span{font-size:10px;color:var(--muted);text-transform:uppercase}.transaction-trade-route .league-team-identity{font-size:12px}.transaction-trade-route .league-team-icon,.transaction-trade-route .league-team-fallback{width:24px;height:24px;flex-basis:24px}.transaction-trade-title{font-size:12px;order:1;color:var(--accent)}

.league-transaction-heading .league-transaction-time{align-self:flex-start;line-height:1.2;padding-top:0}


.transaction-team-section+.transaction-team-section{border-top:1px solid var(--line);margin-top:10px;padding-top:10px}.transaction-team-section .league-transaction-heading{align-items:flex-start;margin-bottom:6px}.transaction-team-section .league-transaction-player{margin-top:5px}

.league-transaction-card.transaction-is-trade{border-top:4px solid #79bfff}

.transaction-trade{background:#234d70;color:#c1ddff}

.league-standings thead th{font-size:10px;letter-spacing:.3px;white-space:nowrap;padding:8px 6px}


.transaction-impact{display:flex;gap:20px;padding-top:8px;margin-top:8px;border-top:1px solid var(--line)}.transaction-impact>span{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap}.transaction-impact strong{font-size:14px}.transaction-impact small{font-size:10px;color:var(--muted)}.impact-positive{color:#d9ed8c}.impact-negative{color:#eaa15b}

.league-matchup-team{padding:4px 8px}.league-matchup-columns{padding-left:8px;padding-right:8px}




.recommendation-why{font-size:10px;padding:3px 8px;margin-left:8px;white-space:nowrap}.why-lineups{display:grid;grid-template-columns:1fr 1fr;gap:20px}.why-lineups p{margin:3px 0;font-size:12px}.why-week{padding:12px 0;border-top:1px solid var(--line)}.plan-step,.alert-card,.automation-box{border:1px solid var(--line);border-radius:9px;padding:14px;margin:12px 0}.plan-step h3{font-size:16px}.plan-step button,.alert-card button{margin:0 8px 0 0}.alert-card{border-left:3px solid #79bfff}.alert-card p{font-size:12px}.automation-box label{display:flex;align-items:center;gap:10px}.automation-box input{width:auto}.draft-heading{display:flex;justify-content:space-between;align-items:center;gap:15px}.account-menu-content #saved-league-select{width:100%}.alert-shortcut{padding:6px 10px;font-size:12px}#draft-panel table button{padding:3px 8px;margin-right:6px}@media(max-width:650px){.why-lineups{grid-template-columns:1fr}.draft-heading{flex-wrap:wrap}}


.draft-room-active .dashboard-toolbar{display:none}.draft-room-active #analysis-note{display:none}

.season-simulation-table td[role=button],.playoff-match[role=button]{cursor:pointer}.season-simulation-table td[role=button]:hover{box-shadow:inset 0 0 0 2px #79bfff}.season-simulation-table td[role=button]:focus-visible,.playoff-match[role=button]:focus-visible{outline:2px solid #79bfff;outline-offset:-2px}.playoff-match[role=button]:hover{border-color:#79bfff}


.league-transaction-player{display:grid;grid-template-columns:76px 24px minmax(0,1fr);gap:8px;align-items:center}.league-transaction-player>.transaction-badge{justify-self:start}.transaction-player-logo{width:24px;height:24px;display:flex;align-items:center;justify-content:center}.transaction-player-identity{min-width:0;overflow-wrap:anywhere}.transaction-player-identity a{color:#a9d5ff;text-decoration:none;font-weight:600}.transaction-player-identity a:hover{text-decoration:underline}.transaction-player-identity small{font-size:10px;color:var(--muted)}.transaction-player-identity small:not(:empty):before{content:" · "}

.player-news-dialog{width:min(1320px,calc(100vw - 32px))}.player-outlook-layout{display:grid;grid-template-columns:minmax(300px,.9fr) minmax(520px,1.2fr);gap:28px;margin-top:20px;align-items:start}.player-outlook-forecast h3{margin:0 0 14px;font-size:20px}.player-outlook-forecast .table-wrap{border:1px solid var(--line);border-radius:8px;max-height:62dvh}.outlook-forecast-table{min-width:0;width:100%}.outlook-forecast-table th{font-size:10px;white-space:nowrap;padding:9px 8px}.outlook-forecast-table td{padding:8px;text-align:center;font-size:12px;font-variant-numeric:tabular-nums}.outlook-forecast-table th{text-align:center}.outlook-forecast-table .outlook-optimal-week>td{background:#d9ed8c20;color:#e9f6b8}.outlook-forecast-table .outlook-current-week>td:first-child{box-shadow:inset 3px 0 #79bfff}@media(max-width:950px){.player-outlook-layout{grid-template-columns:minmax(0,1fr)}.player-outlook-forecast .table-wrap{max-height:none}.player-news-dialog{width:min(700px,calc(100vw - 24px))}}


.player-outlook-forecast{margin:14px 0 18px}.player-news-dialog .outlook-forecast-table{table-layout:fixed}.player-news-dialog .outlook-forecast-table th,.player-news-dialog .outlook-forecast-table td{width:auto!important;position:static!important;text-align:center;box-shadow:none}.player-news-dialog .outlook-forecast-table th:first-child{background:#24352b}.player-news-dialog .outlook-forecast-table td:first-child{background:#192622}.player-news-dialog .outlook-forecast-table td.trade-best-week{background:#d9ed8c20;color:#e9f6b8}.player-news-dialog .outlook-forecast-table td.current-week{border-left:2px solid #79bfff!important;border-right:2px solid #79bfff!important}.player-news-dialog .outlook-forecast-table .waiver-lineup-gain{display:block}.player-news-content>.outlook-text{margin-top:16px}


.dashboard-toolbar>.stats{grid-template-columns:max-content minmax(0,1fr);gap:16px;align-items:stretch}.dashboard-toolbar>.stats .team-summary{width:max-content;max-width:360px;padding:12px 16px;display:flex;align-items:center}.team-summary-text{max-width:260px}.dashboard-toolbar>.stats .simulation-summary{grid-column:2;display:grid;grid-template-columns:105px minmax(0,1fr) 125px;gap:18px;padding:10px 18px;text-align:center;align-items:center;min-width:0;background:linear-gradient(115deg,#213c30,#172921 80%)}.position-metric>span{font-size:9px;letter-spacing:1.3px;color:#b7cb90;white-space:nowrap}.position-metric h3{font-size:32px;line-height:1.1;margin:5px 0;color:#d9ed8c}#current-position{color:#a9d5ff}.position-finish{border-left:1px solid #d9ed8c26;padding-left:14px}#position-timeline{min-width:0;height:108px}.position-chart{display:block;overflow:visible}.position-chart circle{transition:r .15s}.position-chart g:hover circle{r:5.5}.dashboard-toolbar>.stats .simulation-summary #simulated-finish-note{font-size:10px;color:var(--muted);line-height:1.3}@media(max-width:850px){.dashboard-toolbar>.stats{grid-template-columns:1fr}.dashboard-toolbar>.stats .team-summary{max-width:100%}.dashboard-toolbar>.stats .simulation-summary{grid-column:1;grid-template-columns:85px minmax(0,1fr) 100px;gap:10px;padding:10px 12px}.position-metric>span{font-size:8px}}@media(max-width:550px){.dashboard-toolbar>.stats .simulation-summary{grid-template-columns:1fr 1fr}.position-finish{grid-column:2;grid-row:1}#position-timeline{grid-column:1/-1;grid-row:2}.position-metric:first-child{grid-column:1;grid-row:1}}


.dashboard-toolbar>.stats .simulation-summary #current-position,.dashboard-toolbar>.stats .simulation-summary #simulated-finish{font-family:inherit;font-size:32px;font-weight:800;line-height:1.1;letter-spacing:normal;margin:5px 0}.dashboard-toolbar>.stats .simulation-summary #current-position{color:#a9d5ff}#simulated-finish-note:empty{display:none}

.espn-connect-panel .espn-connect-intro{margin:12px 0 18px;font-size:13px}.espn-connect-steps{display:grid;gap:18px}.espn-connect-steps>section{display:grid;grid-template-columns:26px minmax(0,1fr);gap:12px;align-items:start}.espn-step-number{display:flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;background:#d9ed8c20;color:var(--accent);font-size:12px;font-weight:800}.espn-connect-steps h3{font-size:16px;margin:1px 0 9px}.espn-connect-steps p{font-size:12px;color:var(--muted);margin:8px 0 0}.espn-connect-steps .extension-download{display:inline-block;margin:0;padding:9px 14px;font-size:13px;border-radius:6px;text-decoration:none}.espn-open-team{display:inline-block;text-decoration:none;font-size:13px;padding:7px 12px}.espn-install-help{margin:10px 0 0;padding:0;border:0;font-size:12px}.espn-install-help summary{font-size:12px;font-weight:500;color:var(--muted)}.espn-install-help ol{padding-left:18px}.espn-connect-panel .manual{margin-top:18px;padding-top:14px;font-size:12px}.espn-connect-panel .manual>summary{font-size:12px;font-weight:500;color:var(--muted)}.espn-setup-note{margin-top:18px!important}

.dashboard-toolbar>.stats .simulation-summary{background:#172921;grid-template-columns:125px minmax(0,1fr) 125px}.simulation-summary .position-metric{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:70px}.simulation-summary .position-metric:first-child{border-right:1px solid #d9ed8c26;padding-right:14px}.simulation-summary .position-metric>span{font-family:inherit;font-size:9px;font-weight:500;font-style:normal;line-height:1.3;letter-spacing:1.3px;text-transform:uppercase}.dashboard-toolbar>.stats .simulation-summary .position-metric h3{font-family:inherit;font-size:32px;font-weight:800;font-style:normal;line-height:1.1;letter-spacing:normal;margin:8px 0 0;font-variant-numeric:tabular-nums}@media(max-width:850px){.dashboard-toolbar>.stats .simulation-summary{grid-template-columns:100px minmax(0,1fr) 100px}.simulation-summary .position-metric>span{font-size:8px;letter-spacing:1px}}@media(max-width:550px){.dashboard-toolbar>.stats .simulation-summary{grid-template-columns:1fr 1fr}.simulation-summary .position-metric:first-child{border-right:0;padding-right:0}}
