:root{color-scheme:light;--bg:#f5f5f9;--panel:#fff;--panel2:#f0eef6;--line:#dedce8;--ink:#242130;--muted:#625c70;--gold:#6001d2;--teal:#5109ad;--body:-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",sans-serif;--display:var(--body)}
body{background:var(--bg);font-family:var(--body);font-size:16px;line-height:1.45}::selection{background:#dfccff;color:#31006a}*{scrollbar-color:#b5a9ca #f5f5f9}input,textarea{caret-color:var(--gold)}[hidden]{display:none!important}a{color:var(--gold)}a:hover{color:#390078}button,input,textarea,select{font:inherit}button,a,input,select,textarea{touch-action:manipulation}:focus-visible{outline:3px solid #8f4be4;outline-offset:3px}button{min-height:40px}.wrap{max-width:1360px;padding-inline:32px}.skip{position:fixed;top:-80px;left:20px;background:white;padding:12px;z-index:100}.skip:focus{top:12px}.mast{background:white;border:0}.mast .wrap{min-height:80px}.brand{display:flex;align-items:center;gap:10px;font:700 30px var(--display);white-space:nowrap;color:#32006a}.brand svg{width:32px;height:32px;color:var(--gold)}.brand span{font:600 10px var(--body);color:var(--muted);margin:6px 0 0 5px;letter-spacing:.06em}.mast-tools{display:flex;align-items:center;gap:24px}.yahoo-link{font-weight:600;font-size:14px;text-decoration:none}.nav{background:white;backdrop-filter:none;box-shadow:none}.nav .wrap{gap:20px;scrollbar-width:thin}.nav a{font-size:15px;padding:13px 4px;border-bottom:3px solid transparent}.nav a.current,.nav a:hover{color:var(--gold);border-color:var(--gold)}section,section:first-of-type,#overview{padding:30px 0 46px;border:0;scroll-margin-top:70px}.heading{margin:0 0 22px;align-items:center}.heading h1,.heading h2,#overview .heading h1{font:700 clamp(32px,4vw,44px)/1.08 var(--display);letter-spacing:-.02em}.heading p{font-size:15px;margin-top:8px;max-width:65ch}.heading .aside{font-size:12px}.season-tag{font:600 15px var(--body);color:var(--muted);margin-left:12px}.league-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 18px}.league-head h1{font:700 42px/1 var(--display);margin:0}.league-head p{color:var(--muted);font-size:14px;margin:8px 0 0}.sync-line{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:11px 15px;background:#ece6f6;color:#4a3568;font-size:13px;border-radius:8px;margin-bottom:24px}.sync-line strong{font-weight:600}.sync-line a{margin-left:auto}.refresh{border:1px solid var(--line);background:white;color:var(--gold);padding:7px 12px;border-radius:6px;font-weight:600;font-size:13px}.refresh:disabled{opacity:.6;cursor:wait}.league-grid{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(300px,1fr);gap:28px;align-items:start}.section-title{display:flex;justify-content:space-between;align-items:center;gap:14px;margin:0 0 13px}.section-title h2,.section-title h3{font:700 27px/1.1 var(--display);margin:0}.section-title a{font-size:13px;font-weight:600;text-decoration:none}.section-title span{color:var(--muted);font-size:13px}.tablewrap{border:1px solid var(--line);border-radius:10px;background:white}table{font-size:14px}th{background:#f0eef6;color:#625c70;font:600 11px var(--body);text-transform:uppercase;letter-spacing:.035em}th,td{padding:11px 13px;border-color:#ebe8f0}tbody tr:hover{background:#f5f0fc}.standings td:first-child{color:var(--muted);width:42px}.standings .team-cell{display:flex;align-items:center;gap:11px;min-width:210px}.team-mark{width:32px;height:32px;display:grid;place-items:center;background:#eee5fa;color:#5e239b;border-radius:8px;flex:none;font-size:12px;font-weight:700}.team-cell .text-action{font-size:14px;font-weight:600;line-height:1.2;min-height:0}.team-cell small{display:block;font-size:12px;color:var(--muted);margin-top:2px}.standings tr[data-mine=true]{background:#f0e6ff}.standings td.num{font-weight:500}.standing-tools{display:flex;gap:10px;margin:10px 0 13px;align-items:center}.standing-tools label{font-size:12px;color:var(--muted);white-space:nowrap}.standing-tools input,.standing-tools select,.roster-tools input,.roster-tools select{width:100%;min-height:40px;background:white;border:1px solid var(--line);border-radius:6px;padding:8px 10px;color:var(--ink)}.standing-tools select{max-width:185px}.standing-tools input{max-width:290px}.note{line-height:1.5}.score-list{background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden}.score-game{padding:13px 16px;border-bottom:1px solid #ebe8f0}.score-game:last-child{border:0}.score-line{display:flex;justify-content:space-between;gap:18px;font-size:13px;margin:4px 0}.score-line b{font-variant-numeric:tabular-nums;font-weight:600}.score-line.winner{font-weight:600;color:#5000a5}.score-footer{display:flex;justify-content:space-between;color:var(--muted);font-size:11px;margin-top:8px}.week-pick{background:white;border:1px solid var(--line);border-radius:5px;padding:6px;font-size:12px;color:var(--ink)}.league-side>div+div{margin-top:24px}.archive-promo{display:flex;align-items:center;gap:15px;padding:18px 0;border-block:1px solid var(--line);margin-top:24px}.archive-promo img{width:72px;height:80px;object-fit:contain;object-position:bottom;background:#ede5f7;border-radius:8px}.archive-promo strong{font:700 24px var(--display)}.archive-promo p{font-size:13px;color:var(--muted);margin:4px 0 8px}.archive-promo a{font-size:13px;font-weight:600;text-decoration:none}.trade-preview{font-size:14px;color:var(--muted)}.trade-preview a{display:block;margin-top:10px;font-weight:600;text-decoration:none}.history-nav{display:flex;gap:8px;margin-bottom:22px;border-bottom:1px solid var(--line);padding-bottom:13px}.history-nav a{padding:8px 12px;text-decoration:none;font-size:14px;border-radius:6px}.history-nav a[aria-current=page]{background:#e9dcfb;color:#4d009f;font-weight:600}.stats{display:none}.subhead{margin-top:26px}.subhead h3,.subsection h3{font-size:27px}.champions{border-radius:10px;overflow:hidden;background:white}.champ{padding:16px 12px}.champ b{font-size:27px}.champ .text-action{font-size:13px;min-height:36px}.features{border-radius:10px;overflow:hidden}.feature{background:white}.feature strong,.feature em{font-size:24px}.choice{border-radius:6px;padding:7px 12px}.choice:hover,.choice[aria-pressed=true],.season-tabs button[aria-pressed=true]{color:white;background:var(--gold)}.positive{color:#5109ad}.negative,.game-table .loss{color:#a13538}.people,.methods{gap:12px;background:none;border:0}.person{border:1px solid var(--line);border-radius:10px;padding:15px;background:white;transition:background 160ms ease-out}.person:hover{background:#f0e9fa}.person img,.trade-photo,.trade-side li img{background:#f0ebf7;border:0;border-radius:8px}.person h4{font-size:25px}.history-trade,.trade-card{border-radius:10px;overflow:hidden}.history-trade-top{background:#f0eef6}.trade-card{transition:background 160ms ease-out}.trade-card:hover{background:#f4effa}.trade-grid{gap:14px}.trade-control{background:white;padding:20px;border:1px solid var(--line);border-radius:10px}.trade-form input,.trade-form select,.trade-form textarea,.trade-toolbar select{background:white;border-radius:6px}.trade-form button,.share-action{color:white;border-radius:6px}.trade-form button:hover{background:#420094;color:white;border-color:#420094}.trade-empty{border-radius:8px;background:white}.trade-toolbar strong{font-size:14px}.share-inline{border-radius:5px;color:var(--muted);min-height:34px}.share-inline:hover{color:var(--gold)}.detail-dialog{border-radius:12px;background:var(--bg)}.detail-dialog::backdrop{background:#1c103b88;backdrop-filter:none}.dialog-close{border-radius:5px}.dialog-close:hover{color:white}.dialog-bar{background:white}.dialog-content h2{font-size:40px}.dialog-kpis{border-radius:8px;overflow:hidden}.footer{border-top:1px solid var(--line);background:white}.footer a{color:var(--muted)}.roster-tools{display:flex;gap:12px;margin:16px 0}.roster-tools select{max-width:260px}.roster-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.roster-team{background:white;border:1px solid var(--line);border-radius:10px;overflow:hidden}.roster-team summary{padding:16px;cursor:pointer;font-weight:600;min-height:54px}.roster-player{display:flex;justify-content:space-between;padding:9px 16px;border-top:1px solid var(--line);font-size:14px}.roster-player small{color:var(--muted)}.availability{font-size:12px;color:var(--muted);margin:5px 0}.history-details{margin-top:22px}.history-details summary{font-weight:600;cursor:pointer;padding:10px 0}img{max-width:100%}.missing-photo{object-fit:contain}.subtle-link{font-size:12px}input::placeholder,textarea::placeholder{color:#726b7c}.yearlabel{font-size:28px}.empty-search{padding:20px;color:var(--muted)}
@media(max-width:1000px){.league-grid{grid-template-columns:minmax(0,1.45fr) minmax(270px,1fr);gap:20px}.wrap{padding-inline:22px}.roster-list{grid-template-columns:repeat(2,minmax(0,1fr))}.mast-tools{gap:14px}.brand span{display:none}}
@media(max-width:760px){.league-grid{grid-template-columns:1fr}.mast .wrap{min-height:70px}.brand{font-size:25px}.brand svg{width:25px}.mast-tools{gap:10px}.yahoo-link{font-size:12px}.nav .wrap{gap:18px}.league-head h1{font-size:36px}.league-side{display:grid;grid-template-columns:1fr}.heading h1,.heading h2{font-size:36px}.roster-list{grid-template-columns:1fr}.roster-tools{flex-direction:column}.roster-tools select{max-width:none}.sync-line{align-items:flex-start}.sync-line a{margin-left:0}.edition{display:none}.league-head{align-items:flex-start}.standings td,.standings th{padding:10px}.standings .team-cell{min-width:175px;gap:8px}.standings .team-cell .text-action{font-size:13px}.standings .team-mark{width:27px;height:29px}.standings .points-against{display:none}.standing-tools{flex-wrap:wrap}.standing-tools input{max-width:none;flex:1;min-width:140px}.standing-tools select{max-width:145px}.champions{grid-template-columns:repeat(2,1fr)}}
@media(max-width:420px){.wrap{padding-inline:15px}.mast-tools .yahoo-link{display:none}.brand{font-size:26px}.league-head h1{font-size:34px}.standings .team-cell{min-width:152px}.standings td,.standings th{padding:10px 7px}.standings .team-mark{display:none}.season-tag{font-size:13px}.sync-line{font-size:12px}.heading p{font-size:14px}.history-nav{gap:3px}.history-nav a{padding:8px}.score-line{font-size:14px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
@media(min-width:761px){.standings td{padding-block:8px}.score-game{padding-block:10px}}
@media(max-width:760px){.season-tag{display:block;margin:7px 0 0;white-space:nowrap}.league-head h1{font-size:34px}.nav a{min-height:44px}.standing-tools{display:grid;grid-template-columns:minmax(0,1fr) auto}.standing-tools input{grid-column:1/-1}.standing-tools label{grid-column:1}.standing-tools select{width:155px;max-width:none}.roster-list{margin-top:20px}}


.footer .wrap{display:flex;flex-wrap:wrap;gap:10px 24px}.footer span{display:block}
.brand .league-logo{display:grid;place-items:center;flex:none;width:40px;height:40px;border-radius:50%;background:#bda8ef;font:28px/1 'Apple Color Emoji','Segoe UI Emoji',sans-serif;letter-spacing:0;margin:0;color:inherit}.team-mark{position:relative;overflow:hidden}.team-logo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;background:var(--panel2)}
@media(max-width:420px){.standings .team-mark{display:grid;width:26px;height:26px}.brand .league-logo{width:34px;height:34px;font-size:24px}.standings .team-cell .text-action{white-space:normal;text-align:left}.standings .team-cell{min-width:160px}}
.theme-toggle{background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:6px;padding:7px 11px;font-size:12px;font-weight:600;white-space:nowrap}
html:not([data-theme=light]){color-scheme:dark;--bg:#111016;--panel:#1b1922;--panel2:#26222f;--line:#40394d;--ink:#f3eff9;--muted:#bcb3ca;--gold:#bc8cff;--teal:#c8a3ff}
html:not([data-theme=light]) body{background:var(--bg);color:var(--ink)}
html:not([data-theme=light]) .mast,html:not([data-theme=light]) .nav,html:not([data-theme=light]) .footer,html:not([data-theme=light]) .dialog-bar{background:var(--panel)}
html:not([data-theme=light]) .brand{color:var(--ink)}
html:not([data-theme=light]) a:hover{color:#e3ceff}
html:not([data-theme=light]) .font-control select,html:not([data-theme=light]) .refresh,html:not([data-theme=light]) .standing-tools input,html:not([data-theme=light]) .standing-tools select,html:not([data-theme=light]) .roster-tools input,html:not([data-theme=light]) .roster-tools select,html:not([data-theme=light]) .week-pick,html:not([data-theme=light]) .trade-form input,html:not([data-theme=light]) .trade-form select,html:not([data-theme=light]) .trade-form textarea,html:not([data-theme=light]) .trade-toolbar select{background:var(--panel2);color:var(--ink)}
html:not([data-theme=light]) .tablewrap,html:not([data-theme=light]) .score-list,html:not([data-theme=light]) .champions,html:not([data-theme=light]) .feature,html:not([data-theme=light]) .person,html:not([data-theme=light]) .trade-control,html:not([data-theme=light]) .trade-empty,html:not([data-theme=light]) .roster-team{background:var(--panel)}
html:not([data-theme=light]) th,html:not([data-theme=light]) .history-trade-top{background:var(--panel2);color:var(--muted)}
html:not([data-theme=light]) th,html:not([data-theme=light]) td,html:not([data-theme=light]) .score-game{border-color:var(--line)}
html:not([data-theme=light]) tbody tr:hover,html:not([data-theme=light]) .person:hover,html:not([data-theme=light]) .trade-card:hover{background:#2d233c}
html:not([data-theme=light]) .sync-line{background:#2c213d;color:#dec9fb}
html:not([data-theme=light]) .team-mark,html:not([data-theme=light]) .person img,html:not([data-theme=light]) .trade-photo,html:not([data-theme=light]) .trade-side li img,html:not([data-theme=light]) .archive-promo img{background:#332640;color:#dbbdff}
html:not([data-theme=light]) .score-line.winner,html:not([data-theme=light]) .positive{color:#c8a3ff}
html:not([data-theme=light]) .negative,html:not([data-theme=light]) .game-table .loss{color:#ffaaa9}
html:not([data-theme=light]) .history-nav a[aria-current=page],html:not([data-theme=light]) .standings tr[data-mine=true]{background:#39264f;color:#dec5ff}
html:not([data-theme=light]) .trade-form button,html:not([data-theme=light]) .share-action,html:not([data-theme=light]) .choice[aria-pressed=true],html:not([data-theme=light]) .choice:hover,html:not([data-theme=light]) .season-tabs button[aria-pressed=true]{background:#a66af5;color:#1a082f}
html:not([data-theme=light]) input::placeholder,html:not([data-theme=light]) textarea::placeholder{color:#b4a8c3}
html:not([data-theme=light]) *{scrollbar-color:#77648f #1b1922}
html:not([data-theme=light]) .trade-status[data-error=true]{color:#ffaaa9!important}
@media(max-width:760px){.mast .wrap{flex-wrap:wrap;gap:8px;padding-block:12px}.mast-tools{margin-left:auto}.theme-toggle{min-height:36px;padding:6px 9px}.brand{font-size:24px}}
html:not([data-theme=light]) .dialog-close:hover{color:#1a082f}
/* Quiet, high-contrast keyboard focus; no decorative purple halo. */
:focus-visible{outline:2px solid var(--muted);outline-offset:2px}
:focus:not(:focus-visible){outline:none}
.detail-dialog{overflow:hidden}.dialog-scroll{scrollbar-width:thin}
.auth-options{display:flex;gap:12px;flex-wrap:wrap;margin:18px 0}.auth-options button,.auth-options a{padding:11px 16px;min-height:44px;border:1px solid var(--line);border-radius:6px;background:var(--panel2);color:var(--ink);text-decoration:none;font-weight:600;font-size:14px}.auth-options .yahoo-auth{background:#6001d2;color:white;border-color:#6001d2}.auth-options button[aria-pressed=true]{border-color:var(--muted)}.auth-note{max-width:65ch}

.player-placeholder{display:grid;place-items:center;background:var(--panel2);color:var(--muted);font-size:13px;font-weight:700}

/* Native Apple typography; other platforms use their installed system UI. */
body{font-family:var(--body);font-feature-settings:"ss01";font-variant-numeric:tabular-nums}
h1,h2,h3,.brand,.section-title h2,.league-head h1{font-family:var(--display);letter-spacing:-.025em}
.league-head h1{font-size:34px;line-height:1.15}.section-title h2{font-size:23px}.brand{font-size:25px}.heading h1,.heading h2{font-size:34px}

.roster-meta{padding:0 16px}.roster-slot{display:inline-block;min-width:38px;font-size:10px;color:var(--muted)}.injury-status{font-size:10px;color:#ecac69}.activity-row{padding:12px 0;border-bottom:1px solid var(--line);font-size:13px}.activity-row small{display:block;color:var(--muted)}.activity-row p{margin:6px 0;color:var(--muted)}

.roster-avatar{position:relative;display:grid;place-items:center;width:42px;height:42px;flex:none;border-radius:8px;overflow:hidden;background:var(--panel2);color:var(--muted);font-size:12px}.roster-avatar img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:var(--panel2)}.roster-player{align-items:center;gap:10px}.roster-player-info{flex:1;min-width:0}.roster-player-info strong{display:block;font-size:13px}.roster-player-info small{display:block}.roster-player>.roster-slot{min-width:30px;text-align:right}.roster-divider{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);background:var(--panel2);padding:9px 16px;margin:8px 0 0;border-top:2px solid var(--line)}

/* Team selection and comparison: one reading column on phones, two on desktop. */
.roster-tools{display:grid;grid-template-columns:minmax(220px,1.2fr) 1fr 1fr;align-items:center}.roster-tools select{max-width:none;min-width:0}.roster-comparison{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.roster-comparison>.roster-team:only-child{width:100%;max-width:640px;grid-column:1/-1}.roster-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:16px}.roster-heading h2{font:650 16px/1.3 var(--body);margin:0}.roster-heading span{font-size:12px;color:var(--muted);white-space:nowrap}.roster-empty{padding:32px 0;color:var(--muted)}.roster-empty h2{font:600 20px var(--body);color:var(--ink)}
.roster-team .roster-player{padding:4px 14px;min-height:48px;gap:12px}.roster-avatar{width:40px;height:40px;border-radius:50%}.roster-avatar img{object-fit:cover;object-position:center 25%}.roster-player-info strong{line-height:1.2}.roster-player-info small{font-size:11px;line-height:1.4}.roster-divider{margin-top:0;padding:7px 14px}.roster-meta{margin:0 0 14px}
.archive-promo{align-items:center}.archive-promo img{width:72px;height:72px;aspect-ratio:1;flex:none;border-radius:50%;object-fit:cover;object-position:center 25%}.archive-promo strong{font:650 20px/1.2 var(--body)}
.person{grid-template-columns:72px minmax(0,1fr);align-items:start;padding:10px;gap:14px;min-height:92px}.person img{width:72px;height:72px;border-radius:50%;object-fit:cover;object-position:center 25%}.person h4{font:650 17px/1.2 var(--body);margin:0 0 4px}.person p{font-size:12px;line-height:1.35}.person>div{min-width:0}.person .share-inline{margin-top:6px;font-size:12px;min-height:36px;padding:5px 8px}.player-more{font-size:12px;margin-top:5px}.player-more summary{cursor:pointer;display:list-item;min-height:24px;color:var(--gold)}.player-more[open]{margin-top:8px}.people{align-items:start}.trade-photo{border-radius:50%;object-fit:cover}.person:hover{border-color:var(--muted)}
@media(max-width:700px){.roster-tools{grid-template-columns:1fr;gap:8px}.roster-comparison{grid-template-columns:1fr}.roster-comparison>.roster-team:only-child{max-width:none}.roster-heading{padding:12px}.roster-heading h2{font-size:15px}.person{grid-template-columns:64px minmax(0,1fr);min-height:84px}.person img{width:64px;height:64px}.archive-promo strong{font-size:17px}.archive-promo img{width:64px;height:64px}.people{grid-template-columns:1fr}.person h4{font-size:16px}}

.directory-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:26px 0 16px}.directory-heading h2{font:650 22px/1.25 var(--body);margin:0 0 6px}.directory-heading p{font-size:14px;color:var(--muted);margin:0;max-width:65ch}.directory-heading>span{font-size:12px;white-space:nowrap;color:var(--muted)}.team-directory{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px}.team-directory-item{display:flex;align-items:center;gap:12px;min-width:0;width:100%;padding:16px 4px;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;color:var(--ink);text-align:left}.team-directory-item:hover{background:var(--panel2)}.directory-logo{display:grid;place-items:center;width:44px;height:44px;flex:none;border-radius:50%;overflow:hidden;background:var(--panel2);font-weight:600}.directory-logo img{width:100%;height:100%;object-fit:cover}.directory-team{min-width:0;flex:1}.directory-team strong{display:block;font-size:14px;line-height:1.3}.directory-team small{display:block;font-size:12px;color:var(--muted);margin-top:4px}.directory-action{font-size:12px;color:var(--gold);white-space:nowrap}.roster-tools select:disabled{opacity:.45;cursor:not-allowed}.roster-tools input,.roster-tools select{height:44px}.roster-heading h2:focus{outline:none}
@media(max-width:700px){.team-directory{grid-template-columns:1fr}.directory-heading{align-items:start;margin-top:20px}.directory-heading h2{font-size:20px}.directory-heading>span{display:none}.team-directory-item{padding:14px 0}.directory-action{font-size:11px}.directory-team strong{font-size:13px}}

.roster-picker{border:0;padding:0;margin:0;min-width:0}.roster-picker legend{font-weight:600;font-size:15px;margin-bottom:4px}.roster-picks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.roster-pick{display:flex;align-items:center;gap:10px;padding:9px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--ink);text-align:left;min-width:0}.roster-pick img,.pick-fallback{width:40px;height:40px;border-radius:50%;object-fit:cover;flex:none;background:var(--panel2)}.pick-fallback{display:grid;place-items:center}.roster-pick>span:nth-child(2){flex:1;min-width:0}.roster-pick strong{font-size:13px;display:block;line-height:1.25}.roster-pick small{font-size:11px;color:var(--muted);display:block}.pick-state{font-size:11px;color:var(--muted)}.roster-pick[aria-pressed=true]{border-color:var(--gold);background:var(--panel2)}.roster-pick[aria-pressed=true] .pick-state{color:var(--gold);font-weight:700}.roster-pick:hover:not(:disabled){border-color:var(--gold)}.roster-pick:disabled{opacity:.5;cursor:default}.trade-form button:disabled{opacity:.5;cursor:not-allowed}@media(max-width:1000px){.roster-picks{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.roster-picks{grid-template-columns:1fr}}
/* Scope roster choices separately from the form's primary submit action. */
#tradeAddForm{max-width:none;width:100%;grid-template-columns:minmax(0,1fr)}
#tradeAddForm .roster-picker{grid-column:1/-1;width:100%;min-width:0}
#tradeAddForm .roster-picks{grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:10px;width:100%}
#tradeAddForm .roster-pick{display:grid;grid-template-columns:44px minmax(0,1fr) 20px;align-items:center;gap:12px;width:100%;min-height:72px;padding:12px;background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:10px;font-weight:400}
#tradeAddForm .roster-pick img,#tradeAddForm .pick-fallback{width:44px;height:44px}
#tradeAddForm .roster-pick strong{font:600 14px/1.3 var(--body);overflow-wrap:anywhere}
#tradeAddForm .roster-pick small{font:400 12px/1.4 var(--body);margin-top:3px;white-space:nowrap;color:var(--muted)}
#tradeAddForm .pick-state{width:20px;height:20px;border:1px solid var(--muted);border-radius:50%;display:grid;place-items:center;font-size:12px;color:var(--gold)}
#tradeAddForm .roster-pick:hover:not(:disabled){background:var(--panel2);color:var(--ink);border-color:var(--muted)}
#tradeAddForm .roster-pick[aria-pressed=true]{background:var(--panel2);color:var(--ink);border-color:var(--gold)}
#tradeAddForm .roster-pick[aria-pressed=true] .pick-state{background:var(--gold);color:var(--bg);border-color:var(--gold)}
#tradeAddForm .roster-pick:disabled .pick-state{width:auto;border:0;font-size:10px}
#tradeAddForm .roster-pick:disabled{grid-template-columns:44px minmax(0,1fr) auto}
#tradeAddForm>button[type=submit]{justify-self:start;min-width:180px}
.trade-control-heading h3{font:650 22px/1.25 var(--body);margin:0}
@media(max-width:600px){#tradeAddForm .roster-picks{grid-template-columns:1fr}#tradeAddForm>button[type=submit]{width:100%}.trade-control{padding:16px}.trade-control-heading h3{font-size:19px}}

/* Team selection and trade management share the site typography and rhythm. */
.trade-control,.trade-control button,.trade-control select,.trade-control input,.trade-control textarea,.trade-card h3{font-family:var(--font-body,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif)}
.trade-control-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.trade-control-heading h3{margin:0;font-size:24px;line-height:1.25}
.trade-control>p{margin:10px 0 22px;color:var(--muted)}
#tradeClaimForm{display:block;max-width:560px;width:100%}
#tradeClaimForm label{display:grid;gap:8px}
#tradeClaimForm select{width:100%;min-height:48px;padding:10px 12px;border-radius:8px;font:inherit}
#tradeClaimForm>button{display:none}
.trade-control .trade-status:empty{display:none}
.trade-card h3{font-size:18px;line-height:1.25}
.trade-control[hidden],#tradeClaimForm[hidden]{display:none!important}
.trade-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.trade-toolbar>strong{margin-right:auto}
.trade-add-action{padding:10px 16px;border:0;border-radius:8px;background:var(--gold);color:var(--bg);font:600 14px var(--body);white-space:nowrap;min-height:44px}
#tradeEditor{scroll-margin-top:90px;margin-top:24px}
#tradeEditor .trade-control-heading h3{flex:1}
.trade-team-directory button:disabled{opacity:.55;cursor:wait}
@media(max-width:600px){.trade-toolbar>strong{flex-basis:100%}.trade-toolbar>label{flex:1;min-width:0}.trade-toolbar select{width:100%}.trade-add-action{margin-left:auto}}
.trade-team-groups{display:grid;gap:28px;margin-top:20px}
.trade-team-group{border-top:1px solid var(--line);padding-top:20px}
.trade-group-heading{display:flex;align-items:center;gap:12px;margin-bottom:14px}
.trade-group-heading h3{font:650 17px/1.3 var(--body);margin:0}
.trade-group-heading p{font-size:12px;color:var(--muted);margin:4px 0 0}
.trade-group-heading .directory-logo{width:36px;height:36px}
.shared-team-avatar{position:relative;flex:none;width:44px;height:44px;border-radius:50%;overflow:hidden;background:var(--panel2)}
.shared-team-avatar img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.trade-group-heading .shared-team-avatar{width:44px;height:44px}
.trade-group-heading .text-action{font:inherit;text-align:left}
.roster-heading{display:flex;align-items:center;gap:12px}.roster-heading h2{flex:1}
.trade-photo,.roster-avatar,.roster-pick>img,.person>img,.archive-promo>img{border-radius:50%;object-fit:cover;object-position:center;background:var(--panel2)}
#pickerSnapshot:empty{display:none}
/* One control rhythm across filters and action toolbars. */
:root{--control-height:44px}
select,.standing-tools input,.roster-tools input,
.trade-toolbar select,.trade-toolbar .trade-add-action,
.refresh,.theme-toggle,.week-pick,.trade-form>button,
.filters button,.filters select,.season-tabs button{
 box-sizing:border-box;height:var(--control-height);min-height:var(--control-height);
 margin-block:0;padding-block:0;line-height:normal;vertical-align:middle;
 border-radius:8px;font-family:var(--body);
}
select,.trade-toolbar select{padding-inline:12px 30px}
.trade-toolbar>label,.section-title>label{display:flex;align-items:center;margin:0}
.trade-toolbar,.standing-tools,.roster-tools,.mast-tools,.filters{align-items:center}
.trade-toolbar .trade-add-action,.refresh,.theme-toggle,.trade-form>button{display:inline-flex;align-items:center;justify-content:center}
.trade-toolbar select{width:100%;font-size:14px}
#tradeClaimForm select{height:var(--control-height);min-height:var(--control-height);padding-block:0}

.trade-reasons{border:0;padding:0;margin:16px 0;min-width:0}.trade-reasons legend{font-weight:600;font-size:15px}.trade-reason-choices{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}#tradeAddForm .trade-reason{min-height:44px;padding:8px 12px;border:1px solid var(--line);background:var(--panel);color:var(--ink);font-weight:500}#tradeAddForm .trade-reason[aria-pressed=true]{border-color:var(--gold);background:var(--gold);color:var(--bg)}#tradeAddForm .trade-reason:hover:not(:disabled){border-color:var(--gold)}.trade-custom-reason{display:flex;align-items:end;gap:10px;max-width:540px}.trade-custom-reason label{flex:1;min-width:0}.trade-custom-reason input{width:100%;min-height:44px}.trade-custom-reason button{white-space:nowrap;min-height:44px}.trade-note{white-space:pre-line;overflow-wrap:anywhere}.roster-pick .pick-state{flex:none}.trade-selected{overflow-wrap:anywhere}
