/* FPL HQ v0.20 — one shared purple / mint design system. */
:root{--purple:#37003c;--purple2:#4a0d53;--mint:#00ff87;--ink:#37003c;--muted:#74667c;--line:#e1d9e5;--bg:#f7f6f9;--card:#fff;--red:#d42e4d;--green:#008d5b;--shadow:0 2px 14px #37003c0b;font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","SF Pro Text","Segoe UI",Arial,sans-serif;color:var(--ink);font-synthesis:none}
*{box-sizing:border-box}html{background:var(--bg);scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);min-height:100vh;font-size:13px}button,select,input{font:inherit}button{cursor:pointer}button:disabled{opacity:.28;cursor:not-allowed;filter:grayscale(.85)}input,select{accent-color:var(--purple)}a{color:inherit}.hidden,[hidden]{display:none!important}.muted{color:var(--muted);line-height:1.5}.small{font-size:11px}.loading{display:inline-block;animation:pulse 1.15s ease-in-out infinite alternate}@keyframes pulse{to{opacity:.35}}.v{font-variant-numeric:tabular-nums}
.topline{height:5px;background:linear-gradient(90deg,var(--mint),#34dfbd,#75ccff,var(--purple))}.site-header{position:sticky;top:0;background:var(--purple);z-index:30;box-shadow:0 2px 12px #37003c20}.header-bar{height:72px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) 54px;gap:9px;align-items:center;max-width:1250px;margin:auto;padding:10px 12px}.selector{min-width:0;height:50px;background:#fff;color:var(--purple);border:2px solid #ccc1d3;border-radius:13px;position:relative;display:flex;align-items:center;overflow:hidden}.selector-content{position:absolute;pointer-events:none;inset:6px 29px 6px 12px;display:flex;flex-direction:column;justify-content:center;line-height:1.18;min-width:0}.selector-label{display:block;font-size:10px;letter-spacing:.025em;font-weight:900}.selector-value{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:900;margin-top:2px}.selector select{position:absolute;inset:0;width:100%;height:100%;border:0;background:transparent;color:transparent;appearance:none;-webkit-appearance:none;cursor:pointer;outline:0}.selector select option{color:var(--purple);background:#fff;font-weight:600}.selector .dropdown-chevron{position:absolute;right:10px;top:50%;transform:translateY(-50%);pointer-events:none;font-size:23px;font-weight:800;line-height:1}.selector.one-choice .dropdown-chevron{display:none}.refresh{height:50px;border-radius:13px;border:1px solid #94649e;background:#4c1355;color:#fff;font-size:30px;font-weight:800}.refresh:focus-visible,.selector:focus-within{outline:2px solid #fff;outline-offset:1px}.version{display:block;font-size:10px;text-align:center;color:#aa88b0;letter-spacing:.06em;margin-top:1px}.refresh-wrap{align-self:center}.tabs{height:66px;display:flex;gap:0;justify-content:space-between;align-items:stretch;max-width:1250px;margin:auto;padding:6px 12px 9px}.tab{color:#fff;background:transparent;border:0;padding:0 8px;min-width:0;font-size:13px;font-weight:800;border-radius:11px;white-space:nowrap}.tab.active{color:var(--purple);background:var(--mint);border:3px solid #19bf80;box-shadow:inset 0 0 0 1px #98ffcf,0 4px 0 #16a66e}.tab:hover:not(.active){background:#ffffff15}
main{max-width:1100px;margin:0 auto;padding:20px 14px 90px}.page-heading{margin:13px 0 18px}.page-heading h1{font-size:clamp(23px,4.8vw,36px);font-weight:850;letter-spacing:-.035em;margin:0 0 5px;line-height:1.2}.page-heading p{color:var(--muted);font-size:13px;margin:0}.card{background:var(--card);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);padding:15px;margin-bottom:14px;min-width:0}.card h2{font-size:17px;margin:0 0 13px;font-weight:850}.card h3{font-size:14px;margin:0 0 8px}.notice{padding:16px;border:1px solid var(--line);border-radius:12px;background:#fff;margin:9px 0 14px;line-height:1.55;color:var(--muted)}.notice.warn{background:#fff5e9;color:#7a3a17;border-color:#e8bf9c}.notice.error{background:#fff0f3;color:#8d1c3c;border-color:#f5abbf}.notice.success{background:#eafff4;color:#006d48;border-color:#95ebc1}
.primary{background:var(--mint);color:var(--purple);border:1px solid #00c972;border-radius:11px;padding:11px 16px;font-weight:900;min-height:40px}.secondary{background:#fff;border:1px solid #d1c3d8;border-radius:10px;color:var(--purple);font-weight:800;padding:10px 13px}.danger{background:#fff0f4;border:1px solid #e6a7bd;color:#ad183e;padding:9px 12px;border-radius:9px;font-weight:700}.pill-tabs{display:grid;grid-auto-columns:1fr;grid-auto-flow:column;gap:2px;padding:5px;border-radius:12px;background:#efedf2;margin:0 0 16px}.pill{min-width:0;color:var(--purple);font-size:12px;font-weight:900;white-space:nowrap;padding:12px 6px;border:0;background:transparent;border-radius:9px}.pill.selected{color:#fff;background:var(--purple);box-shadow:0 2px 4px #37003c20}.week-nav{display:flex;align-items:center;justify-content:space-between;gap:10px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:8px 11px;margin-bottom:13px}.week-nav strong{font-size:14px;font-weight:850}.week-nav button{width:43px;height:34px;display:inline-flex;justify-content:center;align-items:center;border-radius:8px;background:#fff;border:1px solid #d5c9db;color:var(--purple);font-size:29px;line-height:1}.week-nav button:disabled{background:#eae6ed!important;color:#9e97a3!important;border-color:#ded8e2!important;opacity:.68;filter:none}
.deadline{background:linear-gradient(112deg,#3a0048,#5a0d62);border-radius:13px;padding:16px;color:#fff;display:flex;justify-content:space-between;gap:10px;align-items:center;margin:13px 0}.deadline small{display:block;color:var(--mint);font-size:11px;font-weight:900;letter-spacing:.07em}.deadline strong{display:block;font-size:12px;margin-top:3px}.clock{color:var(--mint);font-weight:900;white-space:nowrap;font-size:clamp(12px,3vw,20px);font-variant-numeric:tabular-nums}
.table-shell{border:1px solid var(--line);border-radius:13px;overflow:hidden;background:#fff;margin-bottom:13px}.league-table{width:100%;border-collapse:collapse;table-layout:fixed;font-variant-numeric:tabular-nums}.league-table th{background:var(--purple);color:#fff;font-size:10px;padding:12px 5px;font-weight:850}.league-table td{font-size:12px;text-align:center;padding:12px 5px;border-bottom:1px solid #e2dce6;color:var(--purple)}.league-table tr:nth-child(even) td{background:#f8f6fa}.league-table tbody tr:last-child td{border-bottom:0}.league-table th:nth-child(1),.league-table td:nth-child(1){width:45px}.league-table th:nth-child(2),.league-table td:nth-child(2){text-align:left;width:auto}.league-table th:nth-last-child(1),.league-table td:nth-last-child(1){width:72px;font-weight:900}.league-table th:nth-last-child(2),.league-table td:nth-last-child(2){width:64px}.league-table td small{display:block;font-size:10px;color:var(--muted);margin-top:4px;font-weight:600}.league-row{cursor:pointer}@media (hover:hover) and (pointer:fine){.league-row:hover:not(.mine):not(.classic-selected-other-row) td{background:#eee4f2!important}}.league-row.mine td,.league-row.mine:nth-child(even) td,.league-row.mine:hover td{background:var(--purple)!important;color:#fff!important}.league-row.mine td *{color:#fff!important}.league-row.expanded:not(.mine) td{background:#eee6f3!important}.league-expanded{padding:14px 10px 16px;background:#f4f0f5;border:1px solid #dfd1e4;margin:-3px 0 12px;border-radius:0 0 12px 12px}.league-expanded h3{margin:0 0 12px;font-size:14px}.draft-table th:nth-child(n+3),.draft-table td:nth-child(n+3){width:auto;font-size:10px;padding-left:1px;padding-right:1px}.draft-table th:nth-child(1),.draft-table td:nth-child(1){width:29px}.draft-table th:last-child,.draft-table td:last-child{width:36px}.draft-table th:nth-child(2),.draft-table td:nth-child(2){width:38%}
.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin:12px 0 16px}.metric{border:1px solid #dcd4e1;background:#fff;border-radius:12px;padding:12px;min-width:0;box-shadow:0 1px 6px #37003c09}.metric>small{display:block;font-size:10px;font-weight:850;letter-spacing:.035em;color:var(--muted);margin-bottom:8px}.metric>strong{font-size:clamp(13px,2.4vw,24px);font-weight:900;line-height:1.1;overflow-wrap:anywhere}.rank-move{display:inline;font-size:clamp(10px,2vw,13px)!important;font-weight:850;white-space:nowrap}.rank-move.up{color:#008c56}.rank-move.down{color:#cf2850}.gw-sub{font-size:11px;font-weight:750;color:#69566e}
.pitch-panel{border:1px solid #c7dcd1;border-radius:14px;overflow:hidden;background:#e8f7ef;max-width:100%;margin:0 0 12px;box-shadow:0 2px 10px #002f2430}.football-field{position:relative;aspect-ratio:1.20/1;background:linear-gradient(170deg,#249476,#198e73 55%,#229e7e);margin:10px;border:3px solid #bbdac8;border-radius:8px;padding:7px;overflow:hidden}.field-markings{position:absolute;inset:9px;border:2px solid #afdfc477;border-radius:2px;pointer-events:none}.field-markings:before{content:"";position:absolute;left:17%;right:17%;top:0;height:25%;border:2px solid #afdfc444;border-top:0}.field-markings:after{content:"";position:absolute;border:2px solid #afdfc444;width:27%;aspect-ratio:1;border-radius:50%;top:50%;left:50%;transform:translate(-50%,-50%)}.formation{position:relative;height:100%;display:grid;grid-template-rows:repeat(4,minmax(0,1fr));gap:0;padding:0 1px}.formation-row{display:flex;justify-content:space-around;align-items:center;min-height:0;gap:1px}.kit-card{min-width:0;max-width:24%;width:22%;border:0;background:transparent;color:var(--purple);display:flex;flex-direction:column;align-items:stretch;padding:0;position:relative;justify-content:center;align-self:center;line-height:1;text-align:center}.kit-image{position:relative;display:block;width:100%;height:clamp(38px,8.2vw,79px);margin:0 auto;max-width:83px}.shirt{width:100%;height:100%;display:block;position:relative}.shirt-svg,.shirt img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}.shirt.kit-loaded .shirt-svg{display:none}.kit-name{height:23px;min-height:23px;display:flex;align-items:center;justify-content:center;gap:3px;background:#fff;border-bottom:1px solid #b2a5b9;color:var(--purple);font-weight:850;font-size:clamp(9px,1.7vw,12px);padding:3px 1px;white-space:nowrap;overflow:visible;position:relative;z-index:1}.kit-name>span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.kit-points{background:var(--purple);height:19px;line-height:19px;color:#fff;font-weight:900;font-size:11px;position:relative;z-index:0}.minutes{position:absolute;top:1px;right:-4px;border:1px solid #fff;box-shadow:0 0 2px #37003c;background:var(--purple);color:#fff;font-size:9px;padding:4px 3px;border-radius:4px;font-weight:900;z-index:2}.armband{position:absolute;left:1px;top:1px;border-radius:5px;background:var(--purple);color:#fff;border:1px solid #fff;padding:3px;font-size:10px;font-weight:900;z-index:2}.armband.vice{background:var(--mint);color:var(--purple)}.yellowcard,.redcard{width:8px;height:13px;display:inline-block;flex:none;border:1px solid #d1aa24;border-radius:1px;background:#ffda30;vertical-align:middle}.redcard{background:#e52440;border-color:#af1731}.bench-area{background:#e0f4e8;padding:7px 9px 11px}.bench-title{display:flex;justify-content:space-between;gap:6px;font-size:12px;margin-bottom:7px;color:var(--purple)}.bench-title strong{font-weight:900;letter-spacing:.04em}.bench-title span{color:#736b79}.bench-players{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}.bench-players .kit-card{width:100%;max-width:100%}.bench-players .kit-image{height:50px}.pitch-summary{padding:10px;background:#f2faf5;color:#46685c;font-size:11px}.compact-pitch .football-field{max-height:580px}.compact-pitch .kit-image{height:clamp(30px,6.4vw,60px)}.compact-pitch .kit-name{font-size:clamp(8px,1.45vw,11px)}.compact-pitch .kit-points{height:17px;line-height:17px}
.awards-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px}.award-row{display:grid;grid-template-columns:54px 1fr auto;gap:8px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}.award-row:last-child{border:0}.award-row small{color:var(--muted);font-weight:800}.award-row strong{min-width:0;overflow-wrap:anywhere}.award-row>b{white-space:nowrap;font-size:11px;color:var(--purple)}.compact-scroll{max-width:100%;overflow:auto}.stats-table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}.stats-table th{background:var(--purple);color:#fff;padding:10px 5px;font-size:10px}.stats-table td{padding:11px 5px;text-align:center;border-bottom:1px solid var(--line);font-size:11px}.history-card{padding:14px 10px}.history-head,.history-row{display:grid;grid-template-columns:1.05fr .9fr .8fr 1.25fr;gap:2px;align-items:center;min-width:0}.history-head{background:var(--purple);color:#fff;min-height:46px;font-size:10px;border-radius:7px 7px 0 0}.history-head b{text-align:center}.history-head b:first-child{text-align:left;padding-left:10px}.history-row{border-bottom:1px solid var(--line);min-height:47px;font-size:12px}.history-row:nth-of-type(2n){background:#faf9fb}.history-row>*{min-width:0;text-align:center;font-variant-numeric:tabular-nums}.history-row strong{text-align:left;padding-left:10px}.history-row:last-of-type{border-bottom:0}
.h2h-top,.h2h-results>div:not(.h2h-top){display:grid;grid-template-columns:34px 1fr 1fr 60px;text-align:center;gap:4px;align-items:center}.h2h-top{background:var(--purple);color:#fff;padding:12px 3px;font-size:10px}.h2h-results>div:not(.h2h-top){padding:11px 3px;border-bottom:1px solid var(--line)}.result-w{color:#008d59}.result-l{color:#c93656}.result-d{color:#76617b}.controls{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:12px}.controls label{font-size:11px;font-weight:900}.controls select{flex:1;min-width:0}.controls select,.select-basic{color:var(--purple);background:#fff;border:1px solid #cbbbd2;border-radius:10px;padding:11px 10px;font-weight:750;outline:none;max-width:100%;color-scheme:light}.controls select:focus-visible,.select-basic:focus-visible{outline:2px solid var(--purple);outline-offset:1px}.progress-track{height:7px;background:#e7dde9;border-radius:4px;overflow:hidden;margin:10px 0}.progress-track>span{display:block;background:var(--mint);height:100%;transition:width .2s}
.move-card{padding:12px 15px}.move-top{display:flex;justify-content:space-between;gap:9px;align-items:center}.move-top time{font-size:10px;color:var(--muted);text-align:right}.move-players{display:grid;grid-template-columns:1fr 24px 1fr;align-items:center;gap:6px;margin-top:12px}.move-players>div{display:flex;flex-direction:column;align-items:center;gap:2px;min-width:0}.move-players strong{font-size:12px;text-align:center}.move-players .shirt{height:45px;width:64px}.move-swap{text-align:center;font-size:20px;color:var(--muted)}.move-tag{font-weight:900;font-size:9px;letter-spacing:.05em}.move-tag.in{color:var(--green)}.move-tag.out{color:var(--red)}
.pl-fixture{padding:0;overflow:hidden}.fixture-trigger{width:100%;border:0;background:#fff;padding:14px 10px;color:var(--purple)}.fixture-trigger>small{font-size:10px;color:var(--muted);display:block;margin-top:8px}.pl-teams{display:grid;grid-template-columns:1fr 65px 1fr;align-items:center;gap:5px;font-weight:800;font-size:13px}.pl-teams span:first-child{text-align:right}.pl-teams span:last-child{text-align:left}.pl-teams strong{font-size:20px}.fixture-details{padding:12px;background:#f9f7fa;display:grid;grid-template-columns:1fr 1fr;gap:8px}.fixture-stat{background:#fff;border:1px solid var(--line);border-radius:9px;padding:9px}.fixture-stat h4{margin:0 0 6px;color:var(--purple);font-size:12px}.fixture-stat>div{display:flex;justify-content:space-between;gap:3px;padding:5px 0;font-size:10px;border-top:1px solid var(--line)}.fixture-stat>div span{color:var(--muted)}
.overlay{position:fixed;inset:0;z-index:80;background:#1f04289c;display:flex;justify-content:center;align-items:center;padding:14px;backdrop-filter:blur(3px)}.dialog{background:#fff;border:1px solid #e9e0ee;border-radius:19px;max-width:520px;width:100%;max-height:min(92vh,900px);overflow-y:auto;overscroll-behavior:contain;padding:20px 20px 25px;box-shadow:0 12px 40px #1e012780;color:var(--purple)}.dialog>h2{font-size:24px;font-weight:950;margin:0 0 8px;letter-spacing:-.02em}.dialog>p{color:#62566a;line-height:1.5}.dialog-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}.close-button{width:36px;height:36px;border:0;border-radius:9px;background:#f4eef5;color:var(--purple);font-size:27px;line-height:1}.type-choice{display:grid;gap:10px;margin-top:19px}.type-choice button{display:block;background:#fff;border:1px solid #c5b7cc;color:var(--purple);padding:18px;text-align:left;border-radius:13px;box-shadow:0 2px 7px #37003c0c}.type-choice button:hover,.type-choice button:focus-visible{background:#eefff5;border-color:#00c572;outline:2px solid #00b76c}.type-choice strong{display:block;font-size:18px}.type-choice span{display:block;color:var(--muted);font-size:12px;margin-top:5px}.field-label{display:block;font-size:11px;font-weight:900;margin:16px 0 7px}.text-input{width:100%;height:47px;padding:10px;border:1px solid #c6b8ce;border-radius:10px;color:var(--purple);font-size:16px;outline:none}.text-input:focus-visible{border-color:var(--purple);box-shadow:0 0 0 2px #37003c22}.dialog-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:16px}.dialog-actions button{flex:1}.league-checks{display:grid;max-height:290px;overflow:auto;gap:8px;margin:12px 0}.league-checks label{border:1px solid #d3c9d8;border-radius:10px;padding:12px;background:#fff;display:flex;align-items:center;gap:10px;font-weight:750}.league-checks label:has(input:checked){background:#eafff2;border-color:#00aa63}.league-checks input{width:18px;height:18px}.manage-row{display:flex;align-items:center;justify-content:space-between;gap:7px;padding:12px 0;border-bottom:1px solid var(--line)}.manage-row strong{font-size:13px}.manage-row small{display:block;color:var(--muted);margin-top:3px}.manage-row button{flex:none}
.player-overlay{align-items:flex-start;padding-top:max(15px,env(safe-area-inset-top,10px))}.player-dialog{max-width:490px;max-height:90dvh;padding:13px}.popup-head{display:grid;grid-template-columns:1fr 39px;gap:9px;align-items:start}.popup-head .pill-tabs{margin:0}.popup-player{display:flex;align-items:center;gap:8px;font-size:19px!important;margin:13px 0!important}.club-disc{font-size:9px;background:#f5eaf6;color:#5b3365;padding:6px;border-radius:50%;height:30px;width:30px;display:flex;align-items:center;justify-content:center}.ownership-card{display:grid;grid-template-columns:1fr 1fr;border:1px solid #dcd1e1;border-radius:11px;padding:9px 10px;background:#fff;gap:10px;margin:10px 0}.ownership-card>div{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:52px;gap:4px}.ownership-card>div:first-child{border-right:1px solid #eadfea}.ownership-card small{font-size:10px;font-weight:900;letter-spacing:.015em;white-space:nowrap}.ownership-card strong{font-size:14px}.owned-yes,.owned-no,.owned-unknown{display:inline-flex;align-items:center;justify-content:center;min-width:23px;height:21px;padding:0 5px;border-radius:6px;font-size:12px;font-weight:900;line-height:1}.owned-yes{background:var(--mint);color:#06442c}.owned-no{background:#d62b4a;color:#fff}.owned-unknown{background:#eee8ef;color:#8f8594}.points-banner{background:var(--purple);color:#fff;padding:15px;border-radius:10px;display:flex;align-items:center;justify-content:space-between;gap:8px;font-weight:750}.points-banner strong{font-size:27px;color:var(--mint);white-space:nowrap}.stat-head,.breakdown-row{display:grid;grid-template-columns:1fr 52px 60px;align-items:center;gap:3px;padding:9px 3px;border-bottom:1px solid var(--line)}.stat-head{font-size:9px;color:var(--muted);font-weight:900}.stat-head>*:not(:first-child),.breakdown-row>*:not(:first-child){text-align:center}.breakdown-row{font-size:12px}.breakdown-row b{font-size:13px;color:#06ad6b}.breakdown-row b.negative{color:#c63251}.injury-news{color:var(--red);font-size:11px;margin:10px 0}.season-stats{width:100%}.season-head,.season-line{display:grid;grid-template-columns:22px minmax(0,1fr) 24px 24px 27px 77px;gap:3px;align-items:center;width:100%;min-width:0;font-variant-numeric:tabular-nums}.season-head{border-radius:7px;background:#f4eef5;color:var(--muted);height:32px;font-size:9px;font-weight:900;padding:0 3px}.season-head>*:not(:nth-child(2)){text-align:center}.season-head>*:nth-child(2){text-align:left}.season-line{border:0;border-bottom:1px solid #dfd5e4;min-height:43px;padding:7px 3px;background:#fff;color:var(--purple);text-align:center;font-size:10px}.season-line:nth-of-type(even){background:#faf8fb}.season-line .matchscore{text-align:left;min-width:0;overflow-wrap:anywhere;font-size:10px;line-height:1.2}.season-line .league-owned-number{font-size:10px;text-align:center;white-space:nowrap;font-weight:850}.season-line .league-owned-number small{font-weight:700;color:var(--muted);font-size:9px;margin-left:2px}.season-line .owned-yes,.season-line .owned-no{justify-self:center}.season-line:focus-visible{outline:2px solid var(--purple);outline-offset:-2px}.toast{position:fixed;bottom:16px;left:50%;transform:translateX(-50%);background:var(--purple);color:#fff;border-radius:9px;padding:12px 18px;z-index:99;max-width:95vw;box-shadow:0 4px 20px #28002c4d}
@media(max-width:760px){
 .header-bar{height:63px;padding:7px 9px;gap:7px;grid-template-columns:minmax(0,1fr) minmax(0,1fr) 42px}.selector{height:43px;border-radius:10px}.selector-content{inset:4px 23px 4px 10px}.selector-label{font-size:9px}.selector-value{font-size:13px}.selector .dropdown-chevron{right:7px;font-size:18px}.refresh{height:43px;border-radius:10px;font-size:26px}.version{font-size:9px;margin-top:-1px}.tabs{height:64px;padding:5px 6px 7px}.tab{font-size:clamp(9px,2.3vw,12px);padding:0 3px;border-radius:8px}.tab.active{border-width:2px}.page-heading{margin:14px 0 17px}.page-heading h1{font-size:27px}main{padding:13px 10px 80px}.card{padding:13px;margin-bottom:12px}.metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin:8px 0}.metric{padding:9px 10px;border-radius:10px;min-height:63px}.metric>small{font-size:9px;margin-bottom:7px}.metric>strong{font-size:clamp(12px,3.4vw,18px)}.gw-sub{font-size:9px}.rank-move{font-size:10px!important}.pill{font-size:clamp(10px,2.6vw,12px);padding:11px 2px}.awards-grid{grid-template-columns:1fr}.league-table th{font-size:9px;padding:10px 3px}.league-table td{font-size:11px;padding:9px 3px}.league-table th:nth-child(1),.league-table td:nth-child(1){width:32px}.league-table th:nth-last-child(1),.league-table td:nth-last-child(1){width:52px}.league-table th:nth-last-child(2),.league-table td:nth-last-child(2){width:43px}.league-table td small{font-size:9px}.football-field{margin:7px;border-width:2px;padding:4px;aspect-ratio:1.08/1}.kit-image{height:clamp(35px,8.9vw,62px)}.kit-name{height:21px;min-height:21px;font-size:clamp(9px,2.2vw,11px)}.kit-points{height:18px;line-height:18px}.bench-players .kit-image{height:clamp(37px,9vw,53px)}.minutes{font-size:8px;padding:3px 2px;right:-3px}.kit-card{width:24%;max-width:24%}.bench-players .kit-card{max-width:100%;width:100%}.compact-pitch .kit-image{height:34px}.compact-pitch .kit-name{font-size:8px;height:19px;min-height:19px}.compact-pitch .football-field{aspect-ratio:1.05/1}.history-head{font-size:9px}.history-row{font-size:11px}.history-row strong{padding-left:6px}.history-head b:first-child{padding-left:6px}.stats-table{min-width:0}.stats-table th,.stats-table td{font-size:9px;padding:10px 3px}.h2h-table th,.h2h-table td{font-size:9px}.dialog{padding:16px}.player-dialog{padding:10px}.popup-player{font-size:18px!important}.season-head,.season-line{grid-template-columns:17px minmax(0,1fr) 20px 23px 24px 69px;gap:2px}.season-head{font-size:8px}.season-line{font-size:9px}.season-line .matchscore{font-size:9px}.season-line .league-owned-number{font-size:9px}.season-line .league-owned-number small{font-size:8px}.ownership-card small{font-size:9px}.fixture-details{grid-template-columns:1fr}.move-players .shirt{height:40px}
}
@media(max-width:370px){.selector-label{font-size:8px}.selector-value{font-size:11px}.tab{font-size:9px}.league-table td{font-size:10px}.football-field{aspect-ratio:1.0/1}.kit-image{height:33px}.kit-name{font-size:8px;min-height:19px;height:19px}.season-head,.season-line{grid-template-columns:16px minmax(0,1fr) 19px 21px 22px 62px;gap:1px}.season-line .league-owned-number{font-size:8px}}

/* Use two lines for full ownership labels rather than ambiguous abbreviations. */
.season-head{height:39px}.season-head span:nth-child(5),.season-head span:nth-child(6){font-size:8px;white-space:normal;line-height:1.15;text-align:center}

/* Player's recent performance and upcoming fixture difficulty on both FPL modes. */
.fixture-trends{margin-top:16px}.fixture-trends h3{font-size:10px;letter-spacing:.04em;margin:13px 0 6px;font-weight:900}.fixture-strip{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px}.fpl-tile{display:flex;flex-direction:column;align-items:center;justify-content:space-between;gap:5px;text-align:center;padding:7px 3px;border-radius:7px;min-height:62px;color:var(--purple)}.fpl-tile small{font-size:9px;font-weight:800}.fpl-tile strong{font-size:9px;min-width:0;overflow:hidden;text-overflow:ellipsis}.fpl-tile b{font-size:10px}.difficulty-1{background:#a7f0b7}.difficulty-2{background:#cdebbd}.difficulty-3{background:#eee0bd}.difficulty-4{background:#e7b9c9}.difficulty-5{background:#e9a2b6}
@media(max-width:370px){.fpl-tile{padding:5px 2px}.fpl-tile strong{font-size:8px}.fpl-tile small{font-size:8px}}

/* Draft HQ v1.52 is a separate, isolated visual surface below the FPL-HQ selector. */
body.draft-active{overflow:hidden;}
body.draft-active .site-header{position:relative;top:auto;}
body.draft-active #tabs{display:none!important;}
body.draft-active #main{max-width:none;width:100%;margin:0;padding:0;height:calc(100dvh - 77px);overflow:hidden;}
body.draft-active .legacy-draft-frame{border:0;width:100%;height:100%;display:block;background:#f7f6f9;overflow:auto;-webkit-overflow-scrolling:touch;}
@media(max-width:760px){body.draft-active #main{height:calc(100dvh - 68px);}}


/* FPL HQ v0.24: Classic's six tabs use Draft HQ v1.52's six-column sizing.
   Draft remains in its own iframe and is intentionally not restyled here. */
body:not(.draft-active) .site-header .tabs {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  align-items: center;
  justify-content: stretch;
  gap: 6px;
  height: auto;
  min-height: 55px;
  padding: 8px clamp(12px, 3vw, 32px);
  overflow: visible;
}
body:not(.draft-active) .site-header .tabs .tab {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-width: 0;
  min-height: 39px;
  padding: 10px 2px;
  font-size: 12px;
  font-weight: 800;
  line-height: 1;
  border: 1px solid transparent;
  border-radius: 7px;
  white-space: nowrap;
}
body:not(.draft-active) .site-header .tabs .tab.active {
  border-color: var(--mint);
  box-shadow: 0 3px 0 #00aa64;
}
@media (max-width: 760px) {
  body:not(.draft-active) .site-header .tabs {
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 2px;
    min-height: 50px;
    padding: 5px;
  }
  body:not(.draft-active) .site-header .tabs .tab {
    min-height: 40px;
    padding: 10px 1px;
    font-size: clamp(8px, 2.6vw, 11px);
    letter-spacing: -.035em;
    border-radius: 7px;
  }
}

/* v0.25: display only official kits while loading; use drawn backup on failure. */
.shirt.kit-pending .shirt-svg {display:none!important;}
.shirt.kit-failed .shirt-svg {display:block!important;}
.shirt.kit-loaded .shirt-svg {display:none!important;}


/* FPL HQ v0.26 — Classic H2H follows Draft HQ's five-column matchup format.
   Names are always a single line; ellipsis is visual only (full name in title). */
.classic-h2h-section-title{margin:17px 2px 8px;color:var(--purple);font-size:15px;font-weight:900}
.classic-h2h-standings-wrap,.classic-h2h-weekly-wrap{width:100%;max-width:100%;overflow:hidden}
.classic-h2h-standings{width:100%;table-layout:fixed}
.classic-h2h-standings th:first-child,.classic-h2h-standings td:first-child{width:8%;padding-left:2px;padding-right:2px;text-align:center}
.classic-h2h-standings th:nth-child(2),.classic-h2h-standings td:nth-child(2){width:37%;text-align:left}
.classic-h2h-standings th:nth-child(n+3):nth-child(-n+7),.classic-h2h-standings td:nth-child(n+3):nth-child(-n+7){width:9%;padding-left:1px;padding-right:1px}
.classic-h2h-standings th:last-child,.classic-h2h-standings td:last-child{width:10%;padding-left:1px;padding-right:1px}
.classic-h2h-standings .classic-h2h-team-cell{min-width:0;overflow:hidden}
.classic-h2h-name{display:block;max-width:100%;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:clamp(10px,2.8vw,13px);font-weight:850;color:var(--purple)}
.classic-h2h-form{display:flex;align-items:center;gap:3px;margin-top:6px;max-width:100%;min-width:0}
.classic-h2h-form span{display:inline-flex;flex:0 0 16px;width:16px;height:17px;border-radius:3px;align-items:center;justify-content:center;color:#fff;font-size:9px;font-weight:900;line-height:1}
.classic-h2h-form-w{background:#008d5b}
.classic-h2h-form-l{background:#ca3453}
.classic-h2h-form-d{background:#88728d}
.classic-h2h-form small{color:var(--muted);font-size:10px}
.classic-h2h-weekly-card{padding:0!important;overflow:hidden}
.classic-h2h-weekly{width:100%;min-width:0;table-layout:fixed;border-collapse:collapse;font-variant-numeric:tabular-nums}
.classic-h2h-weekly th{background:var(--purple);color:#fff;border:0;text-align:center;line-height:1.16;font-size:10px;font-weight:850;padding:12px 3px;vertical-align:middle}
.classic-h2h-weekly td{padding:13px 3px;border-bottom:1px solid #e9e1ec;text-align:center;vertical-align:middle;font-size:11px;font-weight:700;color:var(--purple)}
.classic-h2h-weekly tbody tr:nth-child(even){background:#fcf9fd}
.classic-h2h-weekly tbody tr:last-child td{border-bottom:0}
.classic-h2h-weekly th:nth-child(1){width:9%}
.classic-h2h-weekly th:nth-child(2),.classic-h2h-weekly th:nth-child(4){width:28%}
.classic-h2h-weekly th:nth-child(3){width:20%}
.classic-h2h-weekly th:nth-child(5){width:15%}
.classic-h2h-weekly .classic-matchup-team{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:11px;font-weight:850}
.classic-h2h-weekly .classic-matchup-team span{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.classic-h2h-weekly .classic-matchup-team.w{color:#16794e}
.classic-h2h-weekly .classic-matchup-team.l{color:#bc3150}
.classic-h2h-weekly .classic-matchup-team.d{color:#73637c}
.classic-h2h-weekly .classic-matchup-score{white-space:nowrap;font-size:11px;font-weight:900}
.classic-h2h-weekly .classic-matchup-score i{font-style:normal;color:#8b8090;padding:0 2px}
.classic-h2h-weekly .classic-running-h2h{white-space:nowrap;font-weight:900;font-size:11px}
.classic-h2h-weekly .classic-h2h-empty{padding:16px;text-align:center;color:var(--muted)}
@media(max-width:500px){
 .classic-h2h-section-title{font-size:14px}
 .classic-h2h-standings th,.classic-h2h-standings td{font-size:10px;padding:11px 2px}
 .classic-h2h-name{font-size:10px}
 .classic-h2h-form{gap:2px;margin-top:5px}
 .classic-h2h-form span{flex-basis:13px;width:13px;height:14px;font-size:8px}
 .classic-h2h-weekly th{font-size:8px;padding:10px 1px}
 .classic-h2h-weekly td{font-size:9px;padding:11px 1px}
 .classic-h2h-weekly .classic-matchup-team{font-size:9px}
 .classic-h2h-weekly .classic-matchup-score,.classic-h2h-weekly .classic-running-h2h{font-size:9px}
 .classic-h2h-weekly .classic-matchup-score i{padding:0 1px}
}
@media(max-width:350px){
 .classic-h2h-name{font-size:9px}
 .classic-h2h-form span{flex-basis:12px;width:12px;height:14px;font-size:8px}
 .classic-h2h-weekly th{font-size:7.5px}
 .classic-h2h-weekly .classic-matchup-team{font-size:8px}
}


/* v0.27 Classic History: one-screen responsive sortable columns, current season bold. */
.history-card{overflow:hidden}
.history-table{width:100%;max-width:100%;min-width:0}
.history-head,.history-row{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr) minmax(0,.9fr) minmax(0,1.15fr);column-gap:0}
.history-head>div{height:100%;min-width:0;display:flex;align-items:stretch;justify-content:stretch}
.history-head .history-sort-btn{width:100%;max-width:100%;min-width:0;display:flex;align-items:center;justify-content:center;gap:3px;padding:8px 2px;border:0;border-radius:0;background:transparent;color:#fff;font-size:10px;font-weight:850;line-height:1.12;cursor:pointer;text-align:center}
.history-head>div:first-child .history-sort-btn{justify-content:flex-start;padding-left:9px}
.history-head .history-sort-btn:focus-visible{outline:2px solid #00ff87;outline-offset:-3px}
.history-head .history-sort-btn.is-sorted{color:#00ff87}
.history-head .history-sort-arrow{font-size:9px;flex:none;opacity:.86}
.history-row>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center;font-weight:500;font-size:clamp(10px,2.6vw,12px)}
.history-row>span:first-child{text-align:left;padding-left:9px}
.history-row.history-current{background:#f2e8f5;color:#37003c}
.history-row.history-current>span{font-weight:900}
.history-current-label{display:block;font-size:8px;color:#147e52;letter-spacing:.03em;font-weight:900;margin-top:2px}
/* Match Draft v1.52 gameweek / monthly award cards and compact rows. */
.award-history{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.award-card{padding:0!important;min-width:0;overflow:hidden}
.award-card .card-head{padding:13px 14px;min-height:44px}
.award-card h3{font-size:14px;color:#37003c;margin:0}
.award-list{display:flex;flex-direction:column;padding:0 12px 10px}
.award-list>div{display:grid;grid-template-columns:90px minmax(0,1fr) max-content;align-items:center;gap:10px;border-top:1px solid #eae2ec;padding:10px 2px;min-width:0}
.award-list>div:first-child{border-top:0}
.award-list strong{font-size:11px;overflow-wrap:anywhere;color:#37003c;font-weight:800}
.award-list b{color:#4f155b;font-size:11px;white-space:nowrap}
.award-tag{display:inline-flex;color:#37003c;background:#e7fdef;border-radius:3px;padding:5px 6px;font-size:10px;font-weight:850;width:fit-content}
.award-empty{font-size:12px;line-height:1.5;color:#816c85;padding:10px 2px}
.award-footnote{font-size:10px;line-height:1.5;color:#816c85;margin:12px 3px}
@media(max-width:600px){
 .award-history{grid-template-columns:1fr;gap:12px}
 .award-list>div{grid-template-columns:72px minmax(0,1fr) max-content;gap:6px}
 .history-head .history-sort-btn{font-size:clamp(8px,2.25vw,10px);gap:2px;padding:7px 1px}
 .history-head>div:first-child .history-sort-btn{padding-left:5px}
 .history-row>span{font-size:clamp(9px,2.6vw,11px)}
 .history-row>span:first-child{padding-left:5px}
 .history-head .history-sort-arrow{font-size:8px}
}
@media(max-width:350px){.history-head .history-sort-btn{font-size:8px}.award-list strong{font-size:10px}}

/* FPL HQ v0.28 — Classic PL uses the original Draft PL presentation. */
body.classic-pl-active {overflow:hidden;}
body.classic-pl-active #main {
 max-width:none;
 width:100%;
 margin:0;
 padding:0;
 height:calc(100dvh - 143px);
 min-height:0;
 overflow:hidden;
}
body.classic-pl-active .classic-pl-frame {
 display:block;
 width:100%;
 height:100%;
 border:0;
 background:#f7f6f9;
 -webkit-overflow-scrolling:touch;
}
@media(max-width:760px) {
 body.classic-pl-active #main {height:calc(100dvh - 132px);}
}

/* V0.29 — Classic gameweek transfers, chip usage and live/official rank movement. */
.classic-league-table .league-row td{vertical-align:middle}
.classic-league-table .league-row td:first-child{padding-left:2px;padding-right:2px}
.classic-league-table .league-team-cell{min-width:0}
.classic-league-table .league-team-cell>strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;font-size:12px}
.classic-league-table .league-team-cell>small{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.league-rank-number{font-weight:900;display:block;font-size:12px}
.league-rank-change{font-weight:900;font-size:10px;line-height:1.5;display:block;margin-top:2px;white-space:nowrap}
.league-rank-change.up,.league-row.mine .league-rank-change.up{color:#00a968!important}
.league-rank-change.down,.league-row.mine .league-rank-change.down{color:#de3453!important}
.league-rank-change.steady{color:#8d8191}
.league-rank-change.unknown{opacity:.45}
.league-row.mine .league-rank-change.steady,.league-row.mine .league-rank-change.unknown{color:#fff!important}
.league-row-meta{display:flex;align-items:center;gap:5px;flex-wrap:wrap;margin-top:4px;min-height:14px}
.league-row-meta:empty{display:none}
.classic-league-table .league-row .league-row-meta .table-captain{font-size:10px;font-weight:800;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}
.classic-league-table .table-chip{display:inline-block;border-radius:4px;background:#e3fff2;color:#18523b!important;padding:2px 4px;font-size:9px;font-weight:850;line-height:1.2}
.classic-league-table .league-row.mine .table-chip{background:#00ff87!important;color:#37003c!important}
.classic-league-table .league-row.mine .league-rank-change.up{color:#00ff87!important}
.classic-league-table .league-row.mine .league-rank-change.down{color:#ff899e!important}
.league-table-status{display:flex;align-items:center;gap:7px;flex-wrap:wrap;padding:8px 10px;border:1px solid #d9cfde;background:#f4f0f5;border-radius:9px;margin-bottom:8px;font-size:10px;color:#695a72}
.league-table-status>b{color:#37003c;font-size:10px}
.league-table-status.live{border-color:#79e8b0;background:#e9fff2}
.league-table-status.live>b{color:#007e46}
.table-data-note{font-size:11px;color:#74667c;margin:8px 2px 14px}
.squad-gw-title{margin:12px 0 10px;font-size:14px;display:flex;align-items:center;gap:7px;flex-wrap:wrap;justify-content:center;text-align:center;color:#37003c;font-weight:900}
.gw-chip{font-size:10px;line-height:1.4;background:#37003c;color:#fff;border-radius:5px;padding:4px 7px;white-space:nowrap;font-weight:900}
.kit-image .new-player-badge{position:absolute;bottom:-3px;left:-2px;background:#00e8ff;color:#37003c;border:1px solid #fff;box-shadow:0 1px 3px #27002d44;border-radius:4px;padding:2px 3px;font-size:8px;font-weight:950;z-index:5;line-height:1.1}
.classic-new-signings,.classic-chip-inventory{padding:11px;border:1px solid #ddd1e4;background:#fff;border-radius:10px;margin:11px 0;color:#37003c}
.classic-new-signings h4,.classic-chip-inventory h4{font-size:11px;font-weight:950;letter-spacing:.025em;margin:0 0 9px;color:#37003c}
.classic-new-signings p{font-size:11px;color:#72647a;margin:3px 0}
.signing-tags{display:flex;flex-wrap:wrap;gap:5px}
.signing-tags>span{display:inline-flex;align-items:center;gap:5px;border-radius:6px;border:1px solid #a6e9e7;background:#edffff;padding:5px 7px;font-size:11px;font-weight:850;color:#37003c}
.signing-tags b{font-size:8px;letter-spacing:.02em;color:#005b65;background:#8af5ff;padding:2px 3px;border-radius:3px}
.chip-groups{display:grid;gap:12px;grid-template-columns:1fr 1fr}
.chip-half{min-width:0}
.chip-half h5{font-size:10px;margin:0 0 7px;color:#6e5675}
.chip-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}
.chip-status{padding:7px 5px;border-radius:7px;background:#f7f4f8;border:1px solid #e0d9e5;min-width:0;display:flex;flex-direction:column;gap:3px}
.chip-status strong{font-size:9px;color:#37003c;line-height:1.25}
.chip-status span{font-size:9px;color:#71667a;line-height:1.25}
.chip-status.used{border-color:#bdb3c4;background:#f4ecf6}
.chip-status.used span{color:#37003c;font-weight:900}
.chip-status.available{border-color:#7cdba9;background:#e5fff2}
.chip-status.available span{color:#007d48;font-weight:900}
.chip-status.expired,.chip-status.later{opacity:.58}
.league-expanded .classic-new-signings,.league-expanded .classic-chip-inventory{margin:8px 0}
@media(max-width:620px){
 .classic-league-table .league-team-cell>strong{font-size:11px}
 .classic-league-table .league-row .league-row-meta .table-captain{font-size:9px}
 .classic-league-table .league-row td{padding-top:9px;padding-bottom:9px}
 .classic-league-table th:nth-child(1),.classic-league-table td:nth-child(1){width:37px}
 .classic-league-table th:nth-last-child(2),.classic-league-table td:nth-last-child(2){width:39px}
 .classic-league-table th:last-child,.classic-league-table td:last-child{width:52px}
 .chip-groups{grid-template-columns:1fr;gap:11px}
 .chip-half h5{margin-bottom:5px}
 .chip-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
 .chip-status{padding:6px 3px}
 .chip-status strong,.chip-status span{font-size:8px}
 .squad-gw-title{font-size:13px}
}
@media(max-width:360px){.chip-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.chip-status strong,.chip-status span{font-size:9px}}

/* V0.30 — Classic NEW matches Draft's centred-on-shirt badge. */
.kit-image .new-player-badge{
  left:50%;top:45%;bottom:auto;transform:translate(-50%,-50%);
  display:grid;place-items:center;min-width:29px;height:15px;
  padding:0 3px;border-radius:2px;background:#04f5ff;border:1px solid #fff;
  font-size:9px;line-height:1;pointer-events:none;z-index:10;
}
/* Captain is green, vice captain purple, both separate from the NEW badge. */
.kit-image .armband{background:#00ff87;color:#37003c;border-color:#fff;left:0;top:0;z-index:11}
.kit-image .armband.vice{background:#37003c;color:#fff;border-color:#fff}
/* Draft-style transfers, side by side on mobile without scrolling. */
.classic-new-signings h4{display:flex;align-items:center;justify-content:center;gap:7px}
.signing-new-token{background:#04f5ff;border:1px solid #75bfcb;color:#37003c;border-radius:3px;font-size:9px;padding:3px 4px}
.signing-comparison{display:grid;grid-template-columns:minmax(0,1fr) 56px minmax(0,1fr);align-items:center;gap:4px;padding:9px 4px;margin:8px 0;border-bottom:1px solid #ddd4e3}
.signing-comparison:last-of-type{border-bottom:0}
.signing-player{min-width:0;display:flex;flex-direction:column;align-items:center;text-align:center;gap:4px}
.signing-player .shirt{width:55px;height:54px}
.signing-player strong{font-size:11px;color:#37003c;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.signing-player b{font-size:13px;color:#37003c}
.signing-player .signing-direction{font-size:9px;font-weight:900;color:#006943;letter-spacing:.04em}
.signing-player.outgoing .signing-direction{color:#be2850}
.signing-versus{text-align:center;color:#725b7e;font-size:10px;font-weight:900}
.signing-versus b{display:block;font-size:11px}
.signing-versus small{display:block;font-size:10px;font-weight:800;white-space:nowrap;margin-top:5px}
.signing-versus small.positive{color:#008d50}
.signing-versus small.negative{color:#bf2d50}
.comparison-disclaimer{line-height:1.5}
.classic-weekly-transfers{margin:10px 0;padding:11px;border:1px solid #ded4e5;border-radius:10px;background:#fff}
.classic-weekly-transfers h4{margin:0 0 9px;font-size:11px;color:#37003c}
.transfer-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}
.transfer-metrics>div{border:1px solid #e8ddeb;background:#f9f7fa;border-radius:8px;padding:8px 5px;min-width:0;text-align:center}
.transfer-metrics small{display:block;color:#72647b;font-size:9px;font-weight:750;min-height:20px}
.transfer-metrics strong{display:block;color:#37003c;font-size:12px;line-height:1.3;overflow-wrap:anywhere}
.classic-weekly-transfers>p{margin-top:8px}
.chip-gain{font-style:normal;font-size:10px;font-weight:950;color:#008d50}
.chip-gain.negative{color:#c5224b}
.chip-caveat{font-size:8px;color:#705d7d;line-height:1.2}
@media(max-width:400px){.signing-comparison{grid-template-columns:minmax(0,1fr) 48px minmax(0,1fr)}.signing-player .shirt{width:44px;height:45px}.signing-player strong{font-size:10px}.signing-versus small{font-size:9px}.kit-image .new-player-badge{min-width:25px;height:13px;font-size:8px}}

/* v0.31: Draft-style compact Classic weekly transfer timeline. */
.classic-weekly-transfers{padding:0;overflow:hidden;background:#fff;border:1px solid #dcd0e1;border-radius:11px}
.weekly-moves-head{background:#37003c;color:#fff;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:13px 14px;line-height:1.25}
.weekly-moves-head strong{font-size:14px;letter-spacing:.09em;font-weight:850}
.weekly-moves-head>span{font-size:11px;letter-spacing:.05em;white-space:nowrap}
.weekly-moves-gw{background:#f4edf6;color:#37003c;font-weight:850;font-size:13px;padding:11px 14px;border-bottom:1px solid #e8dfeb}
.weekly-move-entry{padding:12px 13px;border-bottom:1px solid #eee8f1;min-width:0}
.weekly-move-detail{display:flex;align-items:center;gap:12px;min-width:0}
.weekly-move-type{display:inline-flex;flex:none;align-items:center;justify-content:center;background:#00ff87;color:#37003c;font-size:12px;font-weight:850;border-radius:4px;min-width:62px;min-height:28px;padding:5px 7px}
.weekly-move-names{display:flex;flex-wrap:wrap;align-items:center;column-gap:13px;row-gap:4px;min-width:0;font-size:12px;font-weight:850}
.weekly-move-in{color:#147b4d}.weekly-move-out{color:#ba2750}
.weekly-move-entry time{display:block;margin:7px 0 0 74px;color:#71647a;font-size:10px;font-weight:650}
.weekly-move-none{padding:15px;margin:0;color:#75677d;font-size:12px}
.weekly-move-footer{display:flex;gap:16px;justify-content:space-between;padding:10px 13px;font-size:11px;color:#685675;background:#faf8fb}
.weekly-move-footer b{color:#37003c}
.weekly-ft-balances{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;padding:10px 13px 0}
.weekly-ft-balances>div{padding:8px 9px;background:#f5f0f7;border-radius:6px;min-width:0}
.weekly-ft-balances small{display:block;color:#716079;font-size:10px;line-height:1.35}
.weekly-ft-balances strong{color:#37003c;font-size:15px;font-weight:900}
.classic-weekly-transfers>p{padding:0 13px 13px;font-size:10px;margin:10px 0 0;line-height:1.4}
@media(max-width:370px){.weekly-moves-head strong{font-size:11px}.weekly-moves-head>span{font-size:10px}.weekly-move-detail{gap:8px}.weekly-move-names{font-size:11px;column-gap:9px}.weekly-move-entry time{margin-left:68px}}

/* v0.33 — Points attached to each signed/released player; no stacked comparison tiles. */
.weekly-move-entry{padding:11px 12px}
.weekly-move-detail{display:grid;grid-template-columns:62px minmax(0,1fr) auto;gap:10px;align-items:center}
.weekly-move-names{display:grid;grid-template-columns:minmax(0,1fr);gap:6px;font-size:12px;line-height:1.25}
.weekly-move-player{display:flex;align-items:baseline;gap:7px;min-width:0}
.weekly-player-name{min-width:0;overflow-wrap:anywhere;font-weight:850}
.weekly-player-score{display:inline-block;flex:none;white-space:nowrap;font-size:10px;font-weight:850;background:#f1eaf3;color:#37003c;padding:3px 6px;border-radius:5px;font-variant-numeric:tabular-nums}
.weekly-move-diff{font-size:11px;font-weight:900;white-space:nowrap;padding:5px 8px;border-radius:7px;background:#f3eff6;color:#605367;font-variant-numeric:tabular-nums}
.weekly-move-diff.positive{background:#e1ffef;color:#077f4a}
.weekly-move-diff.negative{background:#ffedf1;color:#b9274f}
.weekly-move-diff.pending{font-size:10px;color:#685c70}
.weekly-move-entry time{margin:8px 0 0 72px}
.weekly-ft-balances{padding-bottom:12px}
.classic-weekly-transfers>p{display:none}
@media(max-width:390px){.weekly-move-detail{grid-template-columns:48px minmax(0,1fr) auto;gap:6px}.weekly-move-type{min-width:47px;font-size:10px;padding:4px}.weekly-move-names{font-size:11px;gap:5px}.weekly-move-player{gap:4px}.weekly-player-score{font-size:9px;padding:2px 4px}.weekly-move-diff{font-size:10px;padding:4px 5px}.weekly-move-entry time{margin-left:54px}}


/* v0.34: per-GW squad value and money in the bank alongside an expanded squad. */
.squad-financial-header{display:flex;align-items:center;justify-content:center;gap:7px;margin:3px 0 12px;color:#37003c}
.squad-financial-title{min-width:0;text-align:center}
.squad-financial-title .squad-gw-title{margin:0;line-height:1.25}
.squad-financial-item{min-width:0;display:flex;flex-direction:column;gap:4px;text-align:left}
.squad-financial-item.right{text-align:right}
.squad-financial-item small{font-size:9px;font-weight:850;color:#706077;letter-spacing:.01em;line-height:1.15}
.squad-financial-item strong{font-size:clamp(11px,2.6vw,15px);font-weight:950;font-variant-numeric:tabular-nums;white-space:nowrap;color:#37003c;line-height:1.25}
@media(max-width:400px){.squad-financial-header{gap:4px}.squad-financial-item small{font-size:8px}.squad-financial-item strong{font-size:11px}.squad-financial-title .squad-gw-title{font-size:11px;gap:3px}.squad-financial-title .gw-chip{font-size:8px;padding:2px 4px}}

/* v0.35: left aligned signings, named Free Transfers, chip expiry in GWs. */
.weekly-move-entry time{margin:8px 0 0;text-align:left;padding-left:0}
.weekly-move-detail{grid-template-columns:minmax(78px,99px) minmax(0,1fr) auto;gap:9px}
.weekly-move-type{min-width:0;width:100%;padding:6px 5px;white-space:normal;text-align:center;line-height:1.15;font-size:10px}
.weekly-ft-balances strong{font-size:clamp(10px,2.9vw,14px);line-height:1.3;overflow-wrap:break-word}
.chip-status .chip-gws-left{color:#007849;font-size:10px;line-height:1.2;font-weight:950;margin-top:1px}
@media(max-width:390px){.weekly-move-detail{grid-template-columns:77px minmax(0,1fr) auto;gap:6px}.weekly-move-type{font-size:9px;padding:5px 3px}.weekly-move-entry time{margin-left:0;text-align:left}.chip-status .chip-gws-left{font-size:9px}}
@media(max-width:360px){.weekly-move-detail{grid-template-columns:67px minmax(0,1fr) auto;gap:5px}.weekly-move-type{font-size:8px}.chip-status .chip-gws-left{font-size:9px}}

/* v0.36: put the free-transfer balance first, with the GW context below. */
.weekly-ft-balances>div{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;text-align:center;min-height:65px}
.weekly-ft-balances strong{display:block;order:0}
.weekly-ft-balances small{display:block;order:1}

/* v0.37: display the actual league manager name below expanded squad's team/GW title. */
.squad-financial-title .squad-manager-name{font-size:clamp(10px,2.8vw,13px);font-weight:500;color:#706077;line-height:1.3;margin-top:3px;overflow-wrap:anywhere}

/* v0.38: move league rank changes next to GW points; sortable score headings. */
.classic-league-table .classic-gw-points{font-variant-numeric:tabular-nums}
.classic-gw-points-inner{display:flex;align-items:center;justify-content:center;gap:5px;white-space:nowrap}
.classic-gw-points-inner .league-movement,.classic-gw-points-inner .rank-movement{margin:0;flex-shrink:0}
.classic-table-sort{display:inline-flex;align-items:center;justify-content:center;gap:2px;background:transparent;border:0;color:inherit;font:inherit;font-weight:inherit;padding:4px 1px;cursor:pointer;white-space:nowrap;line-height:1.2}
.classic-table-sort:focus-visible{outline:2px solid #00ff87;outline-offset:2px;border-radius:3px}
.classic-league-table th:nth-last-child(2),.classic-league-table td:nth-last-child(2){width:clamp(90px,22vw,120px)}
.classic-league-table th:nth-last-child(1),.classic-league-table td:nth-last-child(1){width:clamp(62px,15vw,85px)}
@media(max-width:390px){.classic-league-table th:nth-last-child(2),.classic-league-table td:nth-last-child(2){width:88px}.classic-table-sort{font-size:9px}.classic-gw-points-inner{gap:3px}}

/* v0.39: independent GW position-change column between team and GW points. */
.classic-league-table th.classic-pos-change-heading,.classic-league-table td.classic-gw-position-change{width:clamp(76px,19vw,105px);text-align:center}
.classic-league-table td.classic-gw-position-change{vertical-align:middle;white-space:nowrap}
.classic-league-table td.classic-gw-position-change .league-movement,.classic-league-table td.classic-gw-position-change .rank-movement{margin:0 auto}
.classic-league-table th:nth-last-child(2),.classic-league-table td:nth-last-child(2){width:clamp(69px,16vw,95px)}
.classic-league-table th:nth-last-child(1),.classic-league-table td:nth-last-child(1){width:clamp(59px,14vw,80px)}
@media(max-width:390px){.classic-league-table th.classic-pos-change-heading,.classic-league-table td.classic-gw-position-change{width:70px}.classic-league-table th.classic-pos-change-heading{font-size:8px;line-height:1.15;white-space:normal}.classic-league-table th:nth-last-child(2),.classic-league-table td:nth-last-child(2){width:69px}.classic-league-table th:nth-last-child(1),.classic-league-table td:nth-last-child(1){width:56px}}

/* v0.41: keep the release label centred below the refresh icon on all screens. */
.refresh-wrap{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;min-width:0}
.refresh-wrap .refresh{display:block;width:100%;flex:none}
.refresh-wrap .version{display:block;width:100%;margin:2px 0 0;text-align:center;font-size:10px;font-weight:600;line-height:1.2;letter-spacing:.03em;color:#c5a7cb;font-variant-numeric:tabular-nums;white-space:nowrap}
@media(max-width:760px){.refresh-wrap .version{font-size:10px;margin-top:2px}}

/* v0.43: browse weekly transfers without losing the current scroll position. */
.weekly-moves-gw{display:flex;align-items:center;justify-content:space-between;gap:10px}
.weekly-moves-gw>span{flex:1;text-align:center}
.weekly-gw-arrow{flex:0 0 32px;width:32px;height:30px;display:inline-flex;align-items:center;justify-content:center;border:1px solid #cdbdd3;border-radius:8px;background:#fff;color:#37003c;font-weight:800;font-size:24px;line-height:1;padding:0}
.weekly-gw-arrow:disabled{background:#eae5ed;border-color:#ded7e2;color:#a9a0b0;opacity:.5;cursor:not-allowed}
.weekly-gw-arrow:focus-visible{outline:2px solid #37003c;outline-offset:2px}

/* v0.44: tightly condensed Classic My Squad score summary; retain legible values. */
.classic-squad-metrics{gap:5px;margin:6px 0 8px}
.classic-squad-metrics .metric{padding:8px 10px;min-height:0;border-radius:9px;display:flex;flex-direction:column;justify-content:center;gap:3px}
.classic-squad-metrics .metric>small{font-size:10px;line-height:1.15;margin:0;letter-spacing:.025em}
.classic-squad-metrics .metric>strong{display:block;font-size:clamp(15px,3.6vw,21px);line-height:1.18;overflow-wrap:normal}
.classic-squad-metrics .rank-move{font-size:10px!important;white-space:nowrap}
.classic-squad-metrics .gw-sub{font-size:10px;white-space:nowrap}
@media(max-width:760px){.classic-squad-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;margin:5px 0 7px}.classic-squad-metrics .metric{padding:7px 9px;min-height:49px}.classic-squad-metrics .metric>strong{font-size:clamp(15px,3.9vw,19px)}.classic-squad-metrics .metric>small{font-size:9px}}
@media(max-width:360px){.classic-squad-metrics .metric{padding:7px}.classic-squad-metrics .metric>strong{font-size:14px}.classic-squad-metrics .rank-move{font-size:9px!important}}

/* v0.45: team value and GW-specific bank balance share the final compact summary tile. */
.classic-squad-metrics .classic-squad-finances{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:7px}
.classic-squad-finances .classic-finance-side{display:flex;flex-direction:column;justify-content:center;min-width:0;gap:3px}
.classic-squad-finances .classic-finance-side:last-child{border-left:1px solid #e4dce8;padding-left:8px;text-align:right}
.classic-squad-finances .classic-finance-side>small{font-size:9px;font-weight:850;color:var(--muted);letter-spacing:.015em;line-height:1.1;white-space:nowrap}
.classic-squad-finances .classic-finance-side>strong{font-size:clamp(13px,3.35vw,19px);font-weight:900;line-height:1.2;white-space:nowrap}
@media(max-width:390px){.classic-squad-metrics .classic-squad-finances{gap:4px;padding-left:7px;padding-right:7px}.classic-squad-finances .classic-finance-side:last-child{padding-left:5px}.classic-squad-finances .classic-finance-side>small{font-size:8px}.classic-squad-finances .classic-finance-side>strong{font-size:clamp(12px,3.25vw,15px)}}

/* v0.46: Classic pitch auto-sub labels and point-bar captain/vice-captain badges. */
.kit-card .kit-points{display:flex;align-items:center;justify-content:center;gap:5px;white-space:nowrap}
.kit-card .classic-point-number{font-weight:900}
.classic-point-role{display:inline-flex;align-items:center;justify-content:center;flex:none;min-width:16px;height:15px;padding:0 3px;border-radius:3px;border:1px solid #fff;background:#00ff87;color:#37003c;font-size:9px;font-weight:900;line-height:1}
.classic-point-role.vice{background:#8050be;color:#fff}
.kit-image .classic-auto-sub{position:absolute;left:0;top:1px;z-index:13;display:flex;align-items:center;justify-content:center;min-width:27px;height:17px;padding:1px 4px;background:#03d5fa;color:#37003c;border:1px solid #fff;border-radius:4px;box-shadow:0 1px 3px #37003c55;font-size:14px;font-weight:900;line-height:1}
.kit-card.classic-auto-out .kit-image .shirt,.kit-card.classic-auto-out .kit-name,.kit-card.classic-auto-out .classic-point-number{opacity:.38;filter:grayscale(1)}
.kit-card.classic-auto-out .kit-points{background:#746b7a}
.kit-card.classic-auto-out .classic-auto-sub{opacity:1;filter:none}
@media(max-width:390px){.kit-card .kit-points{gap:3px}.classic-point-role{font-size:8px;min-width:14px;padding:0 2px}.kit-image .classic-auto-sub{min-width:24px;height:16px;font-size:12px}}

/* v0.47: restore shirt C / VC badges on the left; mute non-playing and auto-subbed-out players. */
.kit-image .armband{position:absolute;left:0;top:0;z-index:12;display:inline-flex;align-items:center;justify-content:center;min-width:19px;height:20px;padding:2px 3px;border-radius:5px;border:1px solid #fff;background:#00ff87;color:#37003c;font-size:10px;font-weight:900;line-height:1}
.kit-image .armband.vice{background:#00a866;color:#fff;border-color:#fff}
.kit-image .classic-auto-sub{left:auto;right:0;top:20px}
.kit-card .kit-points{display:block;text-align:center;line-height:19px}
.kit-card .classic-point-number{display:inline;font-size:inherit}
.kit-card.classic-auto-out .kit-image .shirt,.kit-card.classic-no-appearance .kit-image .shirt{filter:grayscale(1);opacity:.55}
.kit-card.classic-auto-out .kit-name,.kit-card.classic-no-appearance .kit-name{filter:grayscale(1);opacity:.65}
.kit-card.classic-auto-out .kit-points,.kit-card.classic-no-appearance .kit-points{background:#625b65}
.kit-card.classic-auto-out .classic-point-number,.kit-card.classic-no-appearance .classic-point-number{filter:none;opacity:1}
.kit-card.classic-auto-out .armband,.kit-card.classic-no-appearance .armband{filter:grayscale(1)}
.compact-pitch .kit-card .kit-points{line-height:17px}

/* v0.48: reliably visible original role badges and monochrome verified non-players. */
.pitch-panel .kit-card .kit-image .armband{display:flex!important;position:absolute;left:0;top:0;z-index:20;min-width:21px;height:21px;align-items:center;justify-content:center;opacity:1!important;filter:none!important;box-shadow:0 1px 3px #37003c66;background:#00ff87;color:#37003c;border:1px solid white;font-size:10px;font-weight:900}
.pitch-panel .kit-card .kit-image .armband.vice{background:#00b86b;color:#37003c}
.pitch-panel .kit-card .kit-image .classic-auto-sub{display:flex!important;left:auto;right:0;top:20px;z-index:21;opacity:1!important;filter:none!important}
.pitch-panel .kit-card.classic-no-appearance .shirt,.pitch-panel .kit-card.classic-auto-out .shirt{filter:grayscale(1)!important;opacity:.45!important}
.pitch-panel .kit-card.classic-no-appearance .kit-name,.pitch-panel .kit-card.classic-auto-out .kit-name{filter:grayscale(1);background:#e4e4e4;color:#777}
.pitch-panel .kit-card.classic-no-appearance .kit-points,.pitch-panel .kit-card.classic-auto-out .kit-points{background:#666;color:white}

/* v0.49: Official Premier League crest in Classic player popup, safe fallback initials. */
.popup-player .club-disc{flex:0 0 36px;width:36px;height:36px;padding:2px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;overflow:hidden;background:#f5eaf6}
.popup-player .club-crest-image{display:block;width:100%;height:100%;object-fit:contain}
.popup-player .club-crest-image[hidden]{display:none}
.popup-player .club-crest-fallback{font-size:9px;font-weight:900;text-align:center;line-height:1.1}
.popup-player .club-crest-fallback[hidden]{display:none}

/* v0.50: fixed-size crest regardless of late CSS loads or iOS PWA scaling. */
.player-dialog .popup-player .club-disc{display:inline-flex!important;position:relative!important;flex:0 0 34px!important;width:34px!important;height:34px!important;min-width:34px!important;min-height:34px!important;max-width:34px!important;max-height:34px!important;padding:3px!important;overflow:hidden!important;vertical-align:middle!important}
.player-dialog .popup-player .club-disc>img.club-crest-image{display:block;width:28px!important;height:28px!important;max-width:28px!important;max-height:28px!important;min-width:0!important;min-height:0!important;object-fit:contain!important;flex:none!important}
.player-dialog .popup-player .club-disc>img.club-crest-image[hidden]{display:none!important}
.player-dialog .popup-player{align-items:center;min-width:0;gap:8px}

/* v0.51: transparent background for Classic player popup team crests. */
.player-dialog .popup-player .club-disc{background:transparent!important;border:none!important;box-shadow:none!important;padding:0!important;border-radius:0!important}
.player-dialog .popup-player .club-disc>img.club-crest-image{background:transparent!important;mix-blend-mode:normal;object-fit:contain!important}

/* v0.52: every Classic My Stats gameweek-performance heading is sortable. */
.my-stats-table th{padding:0;white-space:normal}
.my-stats-table .my-stats-sort{width:100%;min-height:33px;display:flex;align-items:center;justify-content:center;gap:2px;padding:6px 3px;border:0;background:transparent;color:inherit;font:inherit;font-weight:800;line-height:1.15;text-align:center;cursor:pointer;white-space:normal}
.my-stats-table .my-stats-sort span{font-size:.85em;white-space:nowrap;opacity:.85}
.my-stats-table .my-stats-sort:focus-visible{outline:2px solid #00ff87;outline-offset:-2px;border-radius:4px}
.my-stats-table td{font-variant-numeric:tabular-nums}
@media(max-width:480px){.my-stats-table .my-stats-sort{font-size:9px;padding:5px 2px;gap:1px}.my-stats-table th:nth-child(3){min-width:65px}.my-stats-table th:nth-child(4),.my-stats-table th:nth-child(5){min-width:75px}}

/* v0.53: proportional, readable My Stats columns and two-line sortable headers. */
.my-stats-table{table-layout:fixed;width:100%;min-width:0}
.my-stats-table th,.my-stats-table td{box-sizing:border-box;min-width:0;text-align:center;padding-left:2px;padding-right:2px}
.my-stats-table th .my-stats-sort{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:3px;min-height:48px;max-width:100%;padding:5px 1px;line-height:1.1;white-space:normal;overflow-wrap:normal}
.my-stats-table .my-stats-sort-label{display:block;width:100%;font-size:clamp(8px,2.3vw,10px);line-height:1.12;white-space:normal;text-align:center;font-weight:800}
.my-stats-table .my-stats-sort-arrow{display:block;font-size:10px;line-height:1;white-space:nowrap;opacity:.9}
.my-stats-table td{white-space:nowrap;font-size:clamp(8px,2.35vw,11px);font-variant-numeric:tabular-nums}
@media(max-width:480px){.my-stats-table th:nth-child(3),.my-stats-table th:nth-child(4),.my-stats-table th:nth-child(5){min-width:0}.my-stats-table .my-stats-sort{min-height:50px;padding:5px 1px;gap:3px}.my-stats-table .my-stats-sort-label{font-size:clamp(8px,2.1vw,9px)}.my-stats-table td{padding:10px 1px;font-size:clamp(8px,2.2vw,10px)}}

/* v0.54: readable Team ID instructions and prominent inline URL ID highlight. */
.team-id-help{margin-top:14px;padding:12px 13px;border:1px solid #ddd4e1;border-radius:11px;background:#faf8fb;color:#4b3450;font-size:12px;line-height:1.45}
.team-id-help>strong{display:block;color:var(--purple);font-size:13px;font-weight:900;margin-bottom:6px}
.team-id-help ol{margin:4px 0 11px;padding-left:20px}
.team-id-help li{padding-left:1px;margin:4px 0}
.team-id-help a{text-decoration:underline;font-weight:750}
.team-id-example-label{display:block;font-weight:800;font-size:11px;margin-bottom:5px}
.team-id-example{display:block;width:100%;padding:10px 8px;background:#fff;border:1px solid #d6c9d9;border-radius:8px;font-size:11px;font-weight:700;line-height:1.5;overflow-wrap:anywhere;word-break:break-word;user-select:text;-webkit-user-select:text}
.team-id-help mark{background:#ffe6e8;color:#c9203b;font-weight:950;border-radius:3px;padding:1px 3px}
.team-id-help p{font-size:11px;line-height:1.45;margin:8px 0 0}

/* v0.55: space ID instructions clearly below the form and never use native yellow mark styling. */
.team-id-help{margin-top:24px!important;clear:both;display:block;padding:14px!important}
.team-id-red{color:#dc173f!important;background:#ffe6ec!important;font-weight:950!important}
.team-id-help>strong{margin-bottom:10px}
.team-id-help ol{margin:8px 0 14px;padding-left:22px}
.team-id-help li{margin-bottom:7px}
.team-id-example{margin-top:7px;overflow-wrap:anywhere;word-break:break-word}
.team-id-help p .team-id-red{background:transparent!important}

/* v0.58 — league ownership pitch and official gameweek transfer popularity */
.ownership-gw-nav{display:flex;align-items:center;justify-content:space-between;gap:10px;background:#fff;border:1px solid #dcd5e0;border-radius:12px;padding:9px 13px;margin:0 0 14px}
.ownership-gw-nav strong{font-weight:900;font-size:15px}
.ownership-gw-nav button{width:38px;height:34px;border:1px solid #d6ccda;background:#f9f5fa;border-radius:8px;color:#37003c;font-size:25px;font-weight:800}
.ownership-gw-nav button:disabled{opacity:.35;filter:grayscale(1);cursor:not-allowed}
.ownership-panel,.ownership-transfers{border:1px solid #dcd2e0;background:#fff;border-radius:13px;margin-bottom:15px;padding:13px 11px}
.ownership-panel h2,.ownership-transfers h2{font-size:18px;margin:0 0 6px;color:#37003c}
.ownership-panel>p,.ownership-transfers>p{margin:0 0 12px}
.ownership-pitch{background:#15987d;border:4px solid #d8f2e8;border-radius:14px;padding:12px 4px;box-shadow:inset 0 0 0 2px #b4ddcf}
.ownership-position{padding:8px 0 10px;border-bottom:1px solid #ffffff35}
.ownership-position:last-child{border-bottom:0}
.ownership-position-label{font-size:9px;letter-spacing:.13em;color:#e7fff8;text-align:center;font-weight:900;margin-bottom:7px}
.ownership-position-players{display:flex;align-items:flex-start;justify-content:space-around;gap:3px}
.ownership-player{flex:0 1 19%;min-width:0;display:flex;flex-direction:column;align-items:stretch;justify-content:start;gap:0;padding:0;border:0;background:transparent;color:#37003c;cursor:pointer;text-align:center}
.ownership-kit{position:relative;display:block;height:clamp(40px,9vw,66px);width:100%;max-width:78px;margin:0 auto 2px}
.ownership-kit .shirt{height:100%;width:100%;display:block}
.ownership-mine{position:absolute;left:50%;top:49%;transform:translate(-50%,-50%);width:21px;height:21px;display:flex;align-items:center;justify-content:center;border:1.5px solid #fff;border-radius:5px;font-size:16px;font-weight:900;z-index:10;box-shadow:0 1px 3px #0007}
.ownership-mine.is-owned{background:#00ff87;color:#37003c}.ownership-mine.not-owned{background:#e3244e;color:#fff}
.ownership-name,.ownership-count,.ownership-pct{display:block;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.18}
.ownership-name{background:#fff;font-weight:900;font-size:clamp(9px,2vw,12px);padding:5px 1px 3px;border-radius:3px 3px 0 0}
.ownership-count{background:#37003c;color:#fff;font-size:clamp(10px,2.2vw,13px);font-weight:900;padding:4px 1px}
.ownership-pct{background:#eafff4;color:#22533e;font-size:clamp(8px,1.9vw,11px);font-weight:800;padding:4px 0;border-radius:0 0 3px 3px}
.ownership-legend{display:flex;justify-content:center;gap:17px;margin-top:11px;font-size:11px;font-weight:750;flex-wrap:wrap}
.ownership-legend span{display:flex;align-items:center;gap:6px}
.ownership-legend b{display:inline-flex;align-items:center;justify-content:center;width:17px;height:17px;border-radius:4px;border:1px solid #fff}
.ownership-legend-owned{background:#00ff87;color:#37003c}.ownership-legend-not{background:#e3244e;color:#fff}
.ownership-transfer-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}
.ownership-transfers-card{border:1px solid #e2d6e5;border-radius:10px;overflow:hidden;min-width:0}
.ownership-transfers-card h3{background:#37003c;color:white;margin:0;padding:11px 9px;font-size:13px;text-align:center}
.ownership-transfer-row{display:flex;width:100%;align-items:center;text-align:left;gap:7px;border:0;border-bottom:1px solid #e8e1ea;padding:10px 8px;background:#fff;color:#37003c}
.ownership-transfer-row:nth-child(even){background:#f9f5fa}
.ownership-transfer-row:last-child{border:0}
.ownership-transfer-rank{flex:0 0 16px;text-align:center;color:#7a6d7e;font-size:10px;font-weight:900}
.ownership-transfer-name{flex:1;min-width:0;font-size:11px;font-weight:850;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ownership-transfer-name small{display:block;color:#817488;font-size:9px}
.ownership-transfer-count{font-size:10px;font-weight:900;white-space:nowrap;color:#147958}
.ownership-transfer-count.out{color:#b0264c}
.ownership-empty{padding:14px}
@media(max-width:530px){.ownership-transfer-grid{grid-template-columns:1fr}.ownership-pitch{padding:9px 3px}.ownership-player{flex-basis:19%}.ownership-kit{height:clamp(34px,8vw,53px)}.ownership-mine{width:19px;height:19px;font-size:15px}.ownership-name{font-size:9px}}

/* v0.59 — slightly larger ownership shirts while retaining five aligned columns. */
.ownership-pitch .ownership-kit{height:clamp(49px,11vw,76px);max-width:88px;margin-bottom:3px}
.ownership-pitch .ownership-kit .shirt{width:100%;height:100%}
.ownership-pitch .ownership-mine{top:49%}
@media(max-width:530px){.ownership-pitch .ownership-kit{height:clamp(42px,10.5vw,62px);max-width:76px}}

/* v0.60 — ownership before/now on each popular transfer row. */
.ownership-transfer-row{align-items:center;gap:8px;min-height:66px}
.ownership-transfer-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}
.ownership-transfer-main .ownership-transfer-name{font-size:12px;flex:none;white-space:normal;overflow-wrap:anywhere}
.ownership-transfer-history{display:flex;align-items:center;gap:5px;flex-wrap:wrap;color:#66536d;font-size:10px;font-weight:650;line-height:1.35}
.ownership-transfer-history b{color:#37003c;font-weight:900}
.ownership-transfer-history-arrow{color:#159a71;font-weight:900}
.ownership-transfer-count{flex:0 0 auto;text-align:right}
@media(max-width:530px){.ownership-transfer-main .ownership-transfer-name{font-size:12px}.ownership-transfer-history{gap:4px;font-size:10px}.ownership-transfer-count{font-size:10px}}

/* v0.64: Moves manager name and league-position team filter. */
.moves-team-filter{display:flex;flex-direction:column;gap:6px;margin:0 0 13px;padding:12px;background:#fff;border:1px solid #dcd3e2;border-radius:12px}
.moves-team-filter label{font-size:10px;font-weight:900;letter-spacing:.045em;color:#65556e}
.moves-team-filter select{width:100%;min-height:40px;background:#fbf8fc;border:1px solid #cfc3d5;border-radius:9px;padding:8px 32px 8px 11px;color:#37003c;font-size:14px;font-weight:800}
.move-team-detail{min-width:0;display:flex;flex-direction:column;gap:3px}
.move-team-detail>strong{font-size:14px;line-height:1.2;overflow-wrap:anywhere}
.move-team-detail>small{font-size:11px;line-height:1.2;font-weight:600;color:#75697e}
.move-top time{flex:0 0 auto;max-width:47%}

/* v0.76 — only the current user's Classic standings row gets deep purple. */
.classic-league-table .league-row.mine > td,
.classic-league-table .league-row.mine:nth-child(even) > td,
.classic-league-table .league-row.mine:hover > td {background:#37003c!important;color:#fff!important}
.classic-league-table .league-row.mine > td strong,
.classic-league-table .league-row.mine > td small{color:#fff!important}

/* v0.77 — visible blue auto-sub badges on both participants, every Classic GW. */
.pitch-panel .kit-card .kit-image .classic-auto-sub{
 display:flex!important;position:absolute!important;right:0!important;top:19px!important;left:auto!important;
 z-index:25!important;align-items:center;justify-content:center;
 min-width:22px;height:21px;padding:1px 4px;
 background:#02d5fa!important;color:#37003c!important;border:1px solid #fff!important;
 border-radius:5px;box-shadow:0 1px 4px #37003c80;font-size:17px;font-weight:950;line-height:1;
 opacity:1!important;filter:none!important;
}
.pitch-panel .kit-card.classic-auto-out .classic-auto-sub,
.pitch-panel .kit-card.classic-no-appearance .classic-auto-sub{opacity:1!important;filter:none!important}

/* v0.78 — gameweek deadline warning colours update every second. */
.deadline .clock{transition:color .18s ease;color:#00ff87}
.deadline.is-soon .clock{color:#ffae42!important}
.deadline.is-urgent .clock{color:#ff536b!important}
.deadline.is-soon{border:1px solid #ffae4266}
.deadline.is-urgent{border:1px solid #ff536b88}

/* v0.79 — matching Draft/Classic substitution icon rail. Left: Premier League
   match on/off (↑/↓), then cyan fantasy auto-sub (↗/↘).
   Right: minutes. Captain/VC remains top-left, NEW remains centred. */
.pitch-panel .kit-card .kit-image .classic-sub-icon-rail{
 position:absolute!important;top:20px;left:0;z-index:26;
 display:flex;flex-direction:column;align-items:flex-start;gap:2px;
 max-width:30px;pointer-events:none;
}
.pitch-panel .kit-card .kit-image .classic-sub-icon-rail:empty{display:none}
.pitch-panel .kit-card .kit-image .classic-match-sub,
.pitch-panel .kit-card .kit-image .classic-sub-icon-rail .classic-auto-sub{
 position:static!important;inset:auto!important;display:grid!important;place-items:center!important;
 width:20px!important;min-width:20px!important;height:19px!important;
 padding:0!important;line-height:1!important;font:900 15px/1 Arial,Helvetica,sans-serif!important;
 border:1px solid #fff!important;border-radius:3px!important;
 box-shadow:0 1px 4px #0007!important;opacity:1!important;filter:none!important;
}
.pitch-panel .kit-card .kit-image .classic-match-sub.on{background:#08ad73!important;color:#fff!important}
.pitch-panel .kit-card .kit-image .classic-match-sub.off{background:#d83f5f!important;color:#fff!important}
.pitch-panel .kit-card .kit-image .classic-sub-icon-rail .classic-auto-sub{background:#04f5ff!important;color:#37003c!important}
.pitch-panel .kit-card.classic-auto-out .classic-sub-icon-rail,
.pitch-panel .kit-card.classic-no-appearance .classic-sub-icon-rail{opacity:1!important;filter:none!important}
@media(max-width:390px){.pitch-panel .kit-card .kit-image .classic-sub-icon-rail{max-width:25px}.pitch-panel .kit-card .kit-image .classic-match-sub,.pitch-panel .kit-card .kit-image .classic-sub-icon-rail .classic-auto-sub{width:18px!important;min-width:18px!important;height:17px!important;font-size:13px!important}}

/* v0.88 — align Weekly Transfers arrows with standard FPL HQ GW navigation. */
.weekly-moves-gw .weekly-gw-arrow{
  box-sizing:border-box!important;flex:0 0 43px!important;
  width:43px!important;height:34px!important;min-width:43px!important;
  display:inline-flex!important;align-items:center!important;justify-content:center!important;
  padding:0!important;margin:0!important;border-radius:8px!important;
  background:#fff!important;border:1px solid #d5c9db!important;
  color:#37003c!important;font-size:0!important;line-height:1!important;
  appearance:none;-webkit-appearance:none;
}
.weekly-moves-gw .weekly-gw-arrow .week-chevron{
  display:block;width:22px;height:22px;flex:0 0 22px;
  stroke:currentColor;fill:none;stroke-width:2.7;
  stroke-linecap:round;stroke-linejoin:round;
}
.weekly-moves-gw .weekly-gw-arrow:disabled{
  background:#eae6ed!important;border-color:#ded8e2!important;
  color:#9e97a3!important;opacity:.68!important;cursor:not-allowed;
}
.weekly-moves-gw .weekly-gw-arrow:focus-visible{
  outline:2px solid #37003c!important;outline-offset:2px!important;
}


/* v0.98.20: One immovable mobile header for both FPL HQ modes.
   iOS can scroll the outer document while the embedded Draft iframe scrolls;
   'sticky' on the parent then allows the team/league controls to slide behind
   the iPhone status bar. Anchor the header to the visual viewport instead.
   Content scrolling remains independent of the static header. */
:root{--hq-header-height:143px;--hq-top-safe:env(safe-area-inset-top,0px)}
@media(max-width:760px){:root{--hq-header-height:132px}}
.site-header{
 position:fixed!important;
 top:0!important;left:0;right:0;
 width:100%;
 padding-top:var(--hq-top-safe);
 z-index:65!important;
 transform:none!important;
}
body:not(.draft-active):not(.classic-pl-active) #main{
 margin-top:calc(var(--hq-header-height) + var(--hq-top-safe));
}
/* Draft and the Classic PL iframe have their own scrollable document.
   The host page must never become a second, drifting scroll container. */
html:has(body.draft-active),html:has(body.classic-pl-active){
 height:100%;overflow:hidden;overscroll-behavior:none;
}
body.draft-active,body.classic-pl-active{
 height:100dvh;max-height:100dvh;overflow:hidden!important;
 overscroll-behavior:none;
}
body.draft-active #main{
 position:fixed!important;
 top:calc(var(--hq-top-safe) + 82px);
 bottom:0;left:0;right:0;
 width:100%;height:auto!important;min-height:0;
 margin:0!important;padding:0!important;overflow:hidden;
}
@media(max-width:760px){
 body.draft-active #main{top:calc(var(--hq-top-safe) + 68px)}
}
body.classic-pl-active #main{
 position:fixed!important;
 top:calc(var(--hq-top-safe) + var(--hq-header-height));
 bottom:0;left:0;right:0;
 width:100%;height:auto!important;min-height:0;
 margin:0!important;padding:0!important;overflow:hidden;
}
body.draft-active .legacy-draft-frame,
body.classic-pl-active .classic-pl-frame{
 display:block;width:100%;height:100%;max-height:100%;
 border:0;overflow:auto;
 -webkit-overflow-scrolling:touch;
}

/* v0.98.21: an accessible top-edge tap target gives the iPhone status bar
   a dependable equivalent when the document is inside a scrolling iframe. */
.site-header{position:fixed}
.site-header .tap-top-hotspot{
 position:absolute;
 /* Expand into the iPhone clock/status-bar safe area, not down over selects. */
 top:0;left:0;right:0;
 z-index:5;width:100%;
 height:calc(var(--hq-top-safe,0px) + 13px);
 min-height:13px;
 margin:0;padding:0;border:0;border-radius:0;
 background:transparent;color:#fff8;
 display:flex;align-items:flex-end;justify-content:center;
 font-size:13px;line-height:12px;
 cursor:pointer;touch-action:manipulation;
 -webkit-tap-highlight-color:transparent;
}
.site-header .tap-top-hotspot:focus-visible{
 outline:2px solid var(--mint);outline-offset:-2px;
}

/* The app owns the status-bar safe-area hit zone, but iOS may reserve
   the actual clock for its native gesture. No invisible target covers the
   team / league selects or the six navigation tabs. */
.site-header .tap-top-hotspot span{pointer-events:none}

/* v0.98.28: FPL Classic 50-manager pages; the owner's true rank is retained
   in a pinned 50th visual row when outside the current page. */
.classic-table-pager{
 display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr) minmax(0,1fr);
 align-items:center;gap:7px;margin:10px 0 14px;
}
.classic-table-pager .secondary{
 min-width:0;padding:10px 5px;font-size:11px;border-radius:9px;
 white-space:nowrap;
}
.classic-table-pager>span{
 color:#67526e;text-align:center;font-size:11px;font-weight:800;
 line-height:1.35;overflow-wrap:anywhere;
}
.classic-league-table .league-row.classic-owner-pinned td{
 background:#eee6f2!important;
 border-top:3px solid #00da82;
 border-bottom:2px solid #c1a8c9;
}
.classic-league-table .league-row.classic-owner-pinned .league-team-cell>strong{
 color:#37003c;
 font-weight:950;
}
@media(max-width:370px){
 .classic-table-pager{gap:4px;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr) minmax(0,1fr)}
 .classic-table-pager .secondary{font-size:10px;padding:9px 3px}
 .classic-table-pager>span{font-size:10px}
}


/* Classic Stats: ranked captain and vice-captain selections */
.captaincy-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:start}
.captaincy-card{min-width:0;overflow:hidden}
.captaincy-card .card-head{margin-bottom:8px}
.captaincy-list{display:flex;flex-direction:column;gap:3px}
.captaincy-player{display:grid;grid-template-columns:22px 34px minmax(0,1fr) auto auto;align-items:center;gap:7px;width:100%;min-width:0;border:0;border-bottom:1px solid #e7e2e9;background:transparent;color:#37003c;padding:7px 3px;text-align:left;cursor:pointer}
.captaincy-player:last-child{border-bottom:0}
.captaincy-player:focus-visible{outline:2px solid #37003c;outline-offset:-2px}
.captaincy-rank{font-size:12px;font-weight:800;opacity:.7;text-align:center}
.captaincy-shirt{height:32px;width:34px;display:block}
.captaincy-shirt .shirt{width:100%;height:100%;display:block}
.captaincy-name{font-weight:800;font-size:12px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.captaincy-fraction{font-weight:900;font-size:12px;white-space:nowrap}
.captaincy-percent{font-size:12px;font-weight:800;color:#6b3570;min-width:40px;text-align:right}
@media(max-width:760px){.captaincy-stats{grid-template-columns:1fr;gap:12px}.captaincy-player{grid-template-columns:22px 36px minmax(0,1fr) auto 45px;gap:9px}.captaincy-name,.captaincy-fraction,.captaincy-percent{font-size:13px}}

/* Keep Classic PL mounted across tab changes instead of restarting its iframe. */
.classic-pl-host{display:none}
body.classic-pl-active #main{display:none}
body.classic-pl-active .classic-pl-host{display:block;position:relative;height:calc(100dvh - 143px);background:#f7f6f9;overflow:hidden}
.classic-pl-host .classic-pl-frame{display:block;width:100%;height:100%;border:0;background:#f7f6f9;-webkit-overflow-scrolling:touch}
.classic-pl-loading{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:24px;text-align:center;color:#37003c;background:#f7f6f9}
.classic-pl-loading strong{font-size:17px}
.classic-pl-loading span:not(.classic-pl-spinner){font-size:13px;color:#6d6170}
.classic-pl-loading button{border:0;background:#37003c;color:white;padding:12px 24px;border-radius:12px;font-weight:800}
.classic-pl-spinner{height:32px;width:32px;border:3px solid #d3c9d6;border-top-color:#37003c;border-radius:50%;animation:classic-pl-spin .8s linear infinite}
@keyframes classic-pl-spin{to{transform:rotate(360deg)}}
@media(max-width:760px){body.classic-pl-active .classic-pl-host{height:calc(100dvh - 132px)}}

/* v0.98.28: PL iframe must start BELOW the fixed header and reach the
   physical viewport bottom. A normal-flow host started at y=0 and left
   a header-sized blank band below the matches on iOS. */
body.classic-pl-active #classic-pl-host{
 display:block!important;
 position:fixed!important;
 top:calc(var(--hq-top-safe) + var(--hq-header-height))!important;
 bottom:0!important;
 left:0!important;right:0!important;
 width:100%!important;
 height:auto!important;
 min-height:0!important;
 margin:0!important;padding:0!important;
 overflow:hidden!important;
 background:#f7f6f9;
}
body.classic-pl-active #classic-pl-host>.classic-pl-frame{
 width:100%!important;height:100%!important;
 max-height:100%!important;display:block;
 border:0;overflow:auto;-webkit-overflow-scrolling:touch;
}

/* v0.98.30 — compact four-way Classic Simulator navigation. */
.simulator-nav{width:100%;min-width:0;margin-bottom:16px}
.simulator-nav .pill-tabs{
 display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;
 grid-auto-columns:unset!important;grid-auto-flow:row!important;
 width:100%;min-width:0;gap:4px;padding:5px;margin:0;
}
.simulator-nav .pill{
 width:100%;min-width:0;max-width:100%;overflow:hidden;
 font-size:clamp(10px,2.5vw,13px);line-height:1.1;
 padding:11px 2px;min-height:37px;white-space:nowrap;
 text-align:center;letter-spacing:-.02em;
}
.bestxi-table-shell{width:100%;max-width:100%;overflow:hidden}
.bestxi-table{width:100%;table-layout:fixed;min-width:0}
.bestxi-table col.bestxi-rank-col{width:7%}
.bestxi-table col.bestxi-team-col{width:42%}
.bestxi-table col.bestxi-score-col{width:17%}
.bestxi-table th,.bestxi-table td{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bestxi-table th:nth-child(1),.bestxi-table td:nth-child(1),
.bestxi-table th:nth-child(2),.bestxi-table td:nth-child(2),
.bestxi-table th:nth-child(3),.bestxi-table td:nth-child(3),
.bestxi-table th:nth-child(4),.bestxi-table td:nth-child(4),
.bestxi-table th:nth-child(5),.bestxi-table td:nth-child(5){width:auto}
.bestxi-table td:nth-child(n+3),.bestxi-table th:nth-child(n+3){text-align:center;padding-left:2px;padding-right:2px}
.bestxi-table td:nth-child(2){padding-left:4px}
.bestxi-sort-btn{display:inline-flex;align-items:center;justify-content:center;gap:2px;
 max-width:100%;padding:5px 1px;border:0;border-radius:4px;background:transparent;
 color:inherit;font-size:inherit;font-weight:900;white-space:nowrap;cursor:pointer}
.bestxi-sort-btn span{font-size:8px;opacity:.8}
.bestxi-sort-btn:focus-visible{outline:2px solid currentColor;outline-offset:1px}
@media(max-width:760px){
 .simulator-nav .pill{font-size:clamp(9px,2.5vw,12px);padding:10px 1px}
 .bestxi-table th{font-size:clamp(9px,2.35vw,11px);padding:8px 1px}
 .bestxi-table td{font-size:clamp(10px,2.65vw,12px);padding:9px 1px}
 .bestxi-table col.bestxi-rank-col{width:7%}
 .bestxi-table col.bestxi-team-col{width:42%}
 .bestxi-table col.bestxi-score-col{width:17%}
}

/* v0.98.33: unified in-theme page-loading treatment. */
.hq-page-loader[hidden],.draft-page-loader[hidden]{display:none!important}
.hq-page-loader{position:fixed;inset:calc(var(--hq-top-safe) + var(--hq-header-height)) 0 0;z-index:62;
display:flex;align-items:center;justify-content:center;padding:16px;background:#f7f6f9}
.hq-load-card{width:min(370px,92vw);background:#fff;border:1px solid #d8cddd;border-radius:18px;
box-shadow:0 10px 32px #37003c1a;padding:28px 22px;text-align:center;color:#37003c}
.hq-load-title{font-size:22px;line-height:1.2;font-weight:900}
.hq-load-card p{font-size:13px;line-height:1.5;margin:12px 0 19px;color:#776780}
.hq-load-track{height:9px;width:100%;border-radius:999px;overflow:hidden;background:#e8e1e9}
.hq-load-track>span{display:block;height:100%;width:27%;border-radius:999px;
background:linear-gradient(90deg,#00ff87,#04f5ff);animation:hq-load-indeterminate 1.4s ease-in-out infinite}
.hq-page-loader.has-progress .hq-load-track>span{animation:none;transition:width .2s ease}
.hq-load-progress{margin-top:12px;font-size:15px;font-weight:900;font-variant-numeric:tabular-nums}
@keyframes hq-load-indeterminate{0%{transform:translateX(-110%)}100%{transform:translateX(390%)}}
body.draft-active .hq-page-loader{top:calc(var(--hq-top-safe) + 68px)}
@media(min-width:761px){body.draft-active .hq-page-loader{top:calc(var(--hq-top-safe) + 82px)}}

.classic-pl-loading .classic-pl-progress-track{width:min(300px,85%);height:9px;background:#e8e1e9;overflow:hidden;border-radius:999px}
.classic-pl-progress-track i{display:block;height:100%;width:27%;border-radius:999px;background:linear-gradient(90deg,#00ff87,#04f5ff);animation:hq-load-indeterminate 1.4s ease-in-out infinite}
.classic-pl-loading.has-progress .classic-pl-progress-track i{animation:none;transition:width .2s ease}
.classic-pl-loading #classic-pl-progress-label{font-size:15px;font-weight:900}

/* v0.98.34 Classic Price Predictor */
.price-watch-card{padding:15px}
.price-watch-card h2{margin:0 0 6px}
.price-watch-row{width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto;
gap:7px 12px;align-items:center;text-align:left;border:0;border-bottom:1px solid #ece7ef;
background:transparent;padding:12px 3px;color:#37003c;cursor:pointer}
.price-watch-row:last-child{border-bottom:0}
.price-watch-name,.price-watch-reading{display:flex;flex-direction:column;gap:3px;min-width:0}
.price-watch-name strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}
.price-watch-name small,.price-watch-reading small{font-size:10px;color:#82758a}
.price-watch-reading{text-align:right;white-space:nowrap}
.price-watch-reading strong{font-size:15px}
.price-watch-row.rise .price-watch-reading strong{color:#008b58}
.price-watch-row.fall .price-watch-reading strong{color:#d32f56}
.price-watch-meter{grid-column:1/-1;height:6px;background:#e9e3ec;border-radius:999px;overflow:hidden}
.price-watch-meter i{display:block;height:100%;border-radius:999px;background:#00b876}
.price-watch-row.fall .price-watch-meter i{background:#ef4567}
.kit-image{position:relative}
.squad-price-indicator{position:absolute;right:0;bottom:0;z-index:15;display:inline-flex;
font-size:clamp(8px,2vw,10px);font-weight:900;line-height:1;padding:4px 3px;
border-radius:5px;border:1px solid white;box-shadow:0 2px 4px #0005;white-space:nowrap}
.squad-price-indicator.rise{background:#00ff87;color:#37003c}
.squad-price-indicator.fall{background:#e72e5b;color:white}

/* Keep all six Classic tabs within the iPhone viewport. */
body:not(.draft-active) .site-header .tabs .tab[data-tab="Price Predictor"]{
 white-space:normal;overflow-wrap:normal;word-break:normal;line-height:1.1;
 font-size:clamp(9px,2.35vw,12px);padding-left:1px;padding-right:1px;
}

/* v0.98.35 — position filter in Classic Price Predictor */
.price-position-tabs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));
gap:4px;background:#efedf2;border-radius:12px;padding:5px;margin:-6px 0 13px}
.price-position-tabs button{min-width:0;padding:11px 2px;border:0;border-radius:9px;
background:transparent;color:#37003c;font-size:clamp(10px,2.5vw,12px);font-weight:900}
.price-position-tabs button.active{background:#37003c;color:white;box-shadow:0 2px 4px #37003c20}
.price-position-tabs button:focus-visible{outline:2px solid #04f5ff;outline-offset:1px}
@media(max-width:760px){.price-position-tabs{gap:3px;padding:4px}.price-position-tabs button{padding:10px 1px}}

/* v0.98.36: NEW stays centered alone; with a price movement badge,
   lift NEW clear of the lower-right price indicator. Applies to pitch,
   bench and compact Classic squad cards without changing the shirt size. */
.kit-image.has-new-and-price .new-player-badge{
 top:22%;bottom:auto;left:50%;transform:translate(-50%,-50%);
 z-index:16;
}
.kit-image.has-new-and-price .squad-price-indicator{
 right:0;bottom:0;z-index:15;
}

/* v0.98.37: shared forecast threshold and non-overlapping pitch badges. */
.price-threshold-nav{display:flex;align-items:center;justify-content:flex-end;gap:5px;
margin:-3px 0 12px;padding:5px 0;color:#716477}
.price-threshold-nav span{margin-right:auto;font-size:10px;font-weight:900;letter-spacing:.035em}
.price-threshold-nav button{border:1px solid #d8cbde;background:#fff;color:#37003c;
border-radius:8px;padding:8px 12px;font-size:12px;font-weight:900;min-width:62px}
.price-threshold-nav button.active{background:#37003c;color:white;border-color:#37003c}
.price-threshold-nav button:focus-visible{outline:2px solid #00d88b;outline-offset:2px}
/* Reserve separate vertical regions for NEW and the price indicator on the
   same kit; the original badge layout is unchanged when NEW is alone. */
.kit-image.has-new-and-price .new-player-badge{
 top:9%;left:50%;bottom:auto;transform:translate(-50%,0);
 font-size:8px;height:13px;min-width:25px;z-index:17;
}
.kit-image.has-new-and-price .squad-price-indicator{
 bottom:2px;right:0;left:auto;top:auto;transform:none;
 z-index:16;font-size:8px;line-height:1;padding:2px 3px;
 max-width:100%;box-sizing:border-box;
}
@media(max-width:760px){
 .price-threshold-nav button{padding:8px 10px;min-width:54px}
 .kit-image.has-new-and-price .new-player-badge{top:5%;height:12px}
 .kit-image.has-new-and-price .squad-price-indicator{bottom:1px;padding:2px 2px}
}

/* v0.98.38: Classic shirt badge alignment independent of which badges exist.
   C/VC left, NEW centered, played minutes right; price remains below. */
.kit-image.classic-badge-row .armband.hq-shirt-role{
 position:absolute!important;left:0!important;top:0!important;right:auto!important;bottom:auto!important;
 transform:none!important;z-index:20!important;
}
.kit-image.classic-badge-row .new-player-badge,
.kit-image.classic-badge-row.has-new-and-price .new-player-badge{
 position:absolute!important;left:50%!important;top:0!important;right:auto!important;bottom:auto!important;
 transform:translateX(-50%)!important;z-index:19!important;
 height:14px!important;min-height:14px!important;max-height:14px!important;
 min-width:25px!important;padding:0 3px!important;font-size:8px!important;
 display:flex!important;align-items:center!important;justify-content:center!important;
}
.kit-image.classic-badge-row .minutes{
 position:absolute!important;right:0!important;top:0!important;left:auto!important;bottom:auto!important;
 transform:none!important;z-index:20!important;
}
.kit-image.classic-badge-row .squad-price-indicator,
.kit-image.classic-badge-row.has-new-and-price .squad-price-indicator{
 top:auto!important;bottom:0!important;right:0!important;left:auto!important;
 transform:none!important;z-index:17!important;
 max-width:calc(100% - 1px);font-size:8px;line-height:1;padding:3px 3px;
}
/* Keep the centre NEW badge clear of C/VC and minutes on small kits. */
@media(max-width:760px){
 .kit-image.classic-badge-row .armband.hq-shirt-role{min-width:17px;height:17px;padding:1px 2px;font-size:9px}
 .kit-image.classic-badge-row .new-player-badge,
 .kit-image.classic-badge-row.has-new-and-price .new-player-badge{
  min-width:22px!important;height:13px!important;min-height:13px!important;max-height:13px!important;font-size:8px!important}
 .kit-image.classic-badge-row .minutes{padding:3px 2px;font-size:8px}
}
.popup-price-watch{background:#faf8fb;border:1px solid #e0d5e4;border-radius:12px;
 margin:12px 0;padding:13px 12px;color:#37003c}
.popup-price-watch h3{font-size:14px;font-weight:900;margin:0 0 12px}
.popup-price-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
.popup-price-grid>div{min-width:0}
.popup-price-grid small{display:block;font-size:9px;letter-spacing:.02em;font-weight:850;color:#83768a;line-height:1.2;margin-bottom:4px}
.popup-price-grid strong{display:block;font-size:clamp(11px,3vw,16px);font-weight:900;line-height:1.25;overflow-wrap:anywhere}
.popup-price-grid strong.rise{color:#008a58}
.popup-price-grid strong.fall{color:#c52c52}
.popup-price-track{height:7px;background:#e6e0e9;border-radius:50px;overflow:hidden;margin:12px 0 6px}
.popup-price-track i{display:block;height:100%;border-radius:50px}
.popup-price-track i.rise{background:#00ba75}
.popup-price-track i.fall{background:#e34965}
.popup-price-history{font-size:12px;margin:9px 0 5px;color:#37003c}
.popup-price-watch>.muted{margin:10px 0 0;line-height:1.35}

/* v0.98.39 — condensed Classic Price Watch player popup. */
.popup-price-watch{margin:8px 0;padding:10px 12px;border-radius:10px}
.popup-price-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}
.popup-price-heading h3{font-size:13px;margin:0;line-height:1.2}
.popup-price-help{position:relative;min-width:0;text-align:right}
.popup-price-help summary{font-size:10px;color:#74667c;text-decoration:underline;text-underline-offset:2px;cursor:pointer;list-style:none}
.popup-price-help summary::-webkit-details-marker{display:none}
.popup-price-help summary:focus-visible{outline:2px solid #04f5ff;outline-offset:2px}
.popup-price-help[open]{text-align:left}
.popup-price-help[open] p{position:relative;text-align:left;margin:6px 0 0;font-size:11px;line-height:1.4;color:#74667c}
.popup-price-grid{gap:8px}
.popup-price-grid small{font-size:9px;line-height:1.2;margin:0 0 2px;white-space:nowrap}
.popup-price-grid strong{font-size:clamp(12px,3.3vw,16px);line-height:1.2;white-space:nowrap;overflow-wrap:normal}
.popup-price-track{height:5px;margin:10px 0 0}
.popup-price-history{display:flex;justify-content:space-between;align-items:center;gap:6px;
border-top:1px solid #e5dce9;margin:9px 0 0;padding:8px 0 0;font-size:11px;line-height:1.25}
.popup-price-history strong{font-size:12px;white-space:nowrap}

/* Keep Price Watch on two centred lines in Classic navigation only. */
body:not(.draft-active) .site-header .tabs .tab .price-watch-tab-label {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  line-height: 1.05;
  white-space: nowrap;
}

/* v0.98.44 — UI consistency pass; avoids pitch geometry and scoring logic. */
:root{--hq-header-height:147px}
@media(max-width:760px){:root{--hq-header-height:136px}}
body:not(.draft-active) .site-header .tabs{
 grid-template-columns:repeat(6,minmax(0,1fr));gap:clamp(2px,.5vw,6px);
}
body:not(.draft-active) .site-header .tabs .tab{
 min-height:44px;min-width:0;box-sizing:border-box;
 padding:7px 2px;border-radius:8px;
 font-size:clamp(9px,2.6vw,12px);line-height:1.12;
 white-space:nowrap;overflow:hidden;text-overflow:clip;
 touch-action:manipulation;-webkit-tap-highlight-color:transparent;
}
body:not(.draft-active) .site-header .tabs .tab.active{
 background:var(--mint);color:var(--purple);border:2px solid #19bf80;
}
body:not(.draft-active) .site-header .tabs .tab .price-watch-tab-label{
 display:inline-flex;flex-direction:column;align-items:center;gap:1px;line-height:1.12;
}
body:not(.draft-active) .site-header .tabs .tab:focus-visible,
body:not(.draft-active) .week-nav button:focus-visible,
body:not(.draft-active) .pill:focus-visible{outline:2px solid #04f5ff;outline-offset:2px}
body:not(.draft-active) .pill-tabs{gap:4px;padding:4px;border-radius:12px;margin-bottom:12px}
body:not(.draft-active) .pill-tabs .pill,
body:not(.draft-active) .price-position-tabs button{
 min-height:44px;box-sizing:border-box;border-radius:9px;
 display:inline-flex;align-items:center;justify-content:center;
 touch-action:manipulation;
}
body:not(.draft-active) .pill-tabs .pill.selected,
body:not(.draft-active) .price-position-tabs button.active{background:#37003c;color:#fff}
body:not(.draft-active) .pill-tabs .pill:disabled,
body:not(.draft-active) .price-position-tabs button:disabled,
body:not(.draft-active) .week-nav button:disabled{
 opacity:.38;cursor:not-allowed;box-shadow:none;filter:grayscale(.5)
}
body:not(.draft-active) .week-nav{
 display:grid;grid-template-columns:44px minmax(0,1fr) 44px;
 align-items:center;gap:7px;padding:6px 9px;margin-bottom:11px;
}
body:not(.draft-active) .week-nav strong{text-align:center;min-width:0}
body:not(.draft-active) .week-nav button{
 width:44px;min-width:44px;height:44px;min-height:44px;
 display:inline-flex;align-items:center;justify-content:center;
 padding:0;border-radius:9px;touch-action:manipulation;
}
body:not(.draft-active):not(.classic-pl-active) #main{padding-top:12px}
body:not(.draft-active) .page-heading{margin:7px 0 12px}
body:not(.draft-active) .page-heading h1{margin-bottom:3px}
body:not(.draft-active) .card{max-width:100%}
body:not(.draft-active) .player-dialog{
 box-sizing:border-box;max-width:min(490px,calc(100vw - 18px));
 border-radius:15px;overscroll-behavior:contain;
}
body:not(.draft-active) .popup-head button,
body:not(.draft-active) .player-dialog .close,
body:not(.draft-active) .player-dialog [aria-label="Close"]{
 min-width:40px;min-height:40px;display:inline-flex;align-items:center;justify-content:center;
}
body:not(.draft-active) .player-dialog .pill-tabs{margin-bottom:9px}
@media(max-width:390px){
 body:not(.draft-active) .site-header .tabs{gap:2px;padding-inline:4px}
 body:not(.draft-active) .site-header .tabs .tab{font-size:clamp(8px,2.4vw,10px);padding-inline:1px}
 body:not(.draft-active):not(.classic-pl-active) #main{padding-left:10px;padding-right:10px}
}
@media(orientation:landscape) and (max-height:520px){
 body:not(.draft-active) .site-header .tabs{padding-block:3px}
 body:not(.draft-active) .page-heading{margin-top:5px}
}

/* Shared arrow and player-dialog finishing touches. */
body:not(.draft-active) .weekly-gw-arrow{
 flex:0 0 40px;width:40px;min-width:40px;height:40px;min-height:40px;
 border-radius:9px;display:inline-flex;align-items:center;justify-content:center;
 touch-action:manipulation;
}
body:not(.draft-active) .weekly-moves-gw>span{text-align:center;min-width:0}
body:not(.draft-active) .player-dialog .popup-head{
 grid-template-columns:minmax(0,1fr) 40px;align-items:start;gap:8px;
}
body:not(.draft-active) .player-dialog [aria-label*="Close" i]{
 width:40px;min-width:40px;min-height:40px;border-radius:9px;
}

/* v0.98.46 — Compact three-card Classic player popup summary. */
.player-dialog .ownership-card-three{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;padding:0;border:0;background:transparent;margin:8px 0 12px}
.player-dialog .ownership-card-three>div{box-sizing:border-box;min-width:0;min-height:93px;background:#faf8fb;border:1px solid #e0d5e4;border-radius:10px;padding:9px 3px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:6px;text-align:center}
.player-dialog .ownership-card-three>div:first-child{border-right:1px solid #e0d5e4}
.player-dialog .ownership-card-three small{font-size:clamp(8px,2.1vw,10px);line-height:1.15;white-space:normal}
.player-dialog .ownership-card-three strong{font-size:clamp(12px,3vw,16px)}
.player-dialog .popup-price-tile .popup-price-forecast{font-weight:900;font-size:clamp(15px,4.1vw,22px);line-height:1.1;white-space:nowrap}
.player-dialog .popup-price-tile .popup-price-forecast.rise{color:#008a58}
.player-dialog .popup-price-tile .popup-price-forecast.fall{color:#c52c52}
.player-dialog .popup-price-current{font-size:12px;font-weight:850;line-height:1}
.player-dialog .popup-price-season{font-size:clamp(9px,2.3vw,11px);color:#74667c;line-height:1.15}
.player-dialog .popup-price-tile .popup-price-track{width:90%;height:4px;margin:0;background:#e6e0e9}
.player-dialog .popup-price-tile .popup-price-history{display:block;border:0;padding:0;margin:0;font-size:9px;line-height:1.2}

/* v0.98.47 — ensure all three lines stay within recent/upcoming fixture tiles on iOS. */
body:not(.draft-active) .player-dialog .fixture-trends{display:flex;flex-direction:column;gap:0;margin-top:14px;min-width:0}
body:not(.draft-active) .player-dialog .fixture-trends h3{display:block;position:static;flex:none;line-height:1.3;margin:12px 0 7px;padding:0;font-size:11px}
body:not(.draft-active) .player-dialog .fixture-trends h3:first-child{margin-top:0}
body:not(.draft-active) .player-dialog .fixture-strip{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px;align-items:stretch;min-width:0;margin:0 0 2px}
body:not(.draft-active) .player-dialog .fixture-strip .fpl-tile{box-sizing:border-box;display:grid;grid-template-rows:repeat(3,minmax(0,1fr));place-items:center;align-content:center;gap:2px;height:auto;min-height:85px;padding:8px 2px;overflow:hidden;line-height:1.2}
body:not(.draft-active) .player-dialog .fixture-strip .fpl-tile small,
body:not(.draft-active) .player-dialog .fixture-strip .fpl-tile strong,
body:not(.draft-active) .player-dialog .fixture-strip .fpl-tile b{display:block;position:static;min-width:0;max-width:100%;height:auto;min-height:0;margin:0;padding:0;line-height:1.25;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body:not(.draft-active) .player-dialog .fixture-strip .fpl-tile small{font-size:clamp(9px,2.3vw,11px)}
body:not(.draft-active) .player-dialog .fixture-strip .fpl-tile strong{font-size:clamp(9px,2.35vw,11px)}
body:not(.draft-active) .player-dialog .fixture-strip .fpl-tile b{font-size:clamp(9px,2.4vw,11px)}

/* v0.98.48 — fixed-size five-column fixture tiles with real club abbreviations. */
body:not(.draft-active) .player-dialog .fixture-trends .fixture-strip{
 display:grid!important;grid-template-columns:repeat(5,minmax(0,1fr))!important;
 gap:5px!important;align-items:stretch!important;
}
body:not(.draft-active) .player-dialog .fixture-trends .fixture-strip>.fpl-tile{
 box-sizing:border-box!important;display:grid!important;
 grid-template-columns:minmax(0,1fr)!important;
 grid-template-rows:repeat(3,minmax(0,1fr))!important;
 align-items:center!important;justify-items:center!important;
 width:100%!important;height:72px!important;min-height:0!important;max-height:72px!important;
 padding:5px 1px!important;margin:0!important;gap:0!important;
 text-align:center!important;overflow:hidden!important;
}
body:not(.draft-active) .player-dialog .fixture-trends .fixture-strip>.fpl-tile :is(small,strong,b){
 display:block!important;width:100%!important;max-width:100%!important;
 margin:0!important;padding:0 1px!important;
 box-sizing:border-box!important;line-height:1.15!important;
 font-size:clamp(9px,2.5vw,11px)!important;
 white-space:nowrap!important;text-overflow:clip!important;overflow:hidden!important;
 text-align:center!important;
}
body:not(.draft-active) .player-dialog .fixture-trends h3{
 margin:11px 0 6px!important;padding:0!important;
 line-height:1.3!important;position:static!important;
}

/* v0.98.49: past fixtures remain pastel; future FDR is more visually prominent. */
body:not(.draft-active) .player-dialog .fixture-strip-past .fpl-tile.difficulty-1{background:#d9efd2}
body:not(.draft-active) .player-dialog .fixture-strip-past .fpl-tile.difficulty-2{background:#dfeccf}
body:not(.draft-active) .player-dialog .fixture-strip-past .fpl-tile.difficulty-3{background:#e8ddb8}
body:not(.draft-active) .player-dialog .fixture-strip-past .fpl-tile.difficulty-4{background:#e7c6d0}
body:not(.draft-active) .player-dialog .fixture-strip-past .fpl-tile.difficulty-5{background:#e9bcc8}
body:not(.draft-active) .player-dialog .fixture-strip-next .fpl-tile.difficulty-1{background:#7ee095}
body:not(.draft-active) .player-dialog .fixture-strip-next .fpl-tile.difficulty-2{background:#a4df94}
body:not(.draft-active) .player-dialog .fixture-strip-next .fpl-tile.difficulty-3{background:#e8cf80}
body:not(.draft-active) .player-dialog .fixture-strip-next .fpl-tile.difficulty-4{background:#db9db8}
body:not(.draft-active) .player-dialog .fixture-strip-next .fpl-tile.difficulty-5{background:#de85a5}
body:not(.draft-active) .player-dialog .fixture-trends h3.fixture-heading-next{font-weight:950!important;color:#37003c;letter-spacing:.045em}

/* v0.98.50 — past FDR from actual fixtures; vibrant upcoming FDR palette. */
body:not(.draft-active) .player-dialog .fixture-strip-past .fpl-tile.difficulty-unknown{background:#f1edf2}
body:not(.draft-active) .player-dialog .fixture-strip-past .fpl-tile.difficulty-1{background:#d7f3df}
body:not(.draft-active) .player-dialog .fixture-strip-past .fpl-tile.difficulty-2{background:#d8ebce}
body:not(.draft-active) .player-dialog .fixture-strip-past .fpl-tile.difficulty-3{background:#f0e4c0}
body:not(.draft-active) .player-dialog .fixture-strip-past .fpl-tile.difficulty-4{background:#edcfd8}
body:not(.draft-active) .player-dialog .fixture-strip-past .fpl-tile.difficulty-5{background:#e9b8c8}
body:not(.draft-active) .player-dialog .fixture-strip-next .fpl-tile.difficulty-1{background:#00ae69;color:#fff}
body:not(.draft-active) .player-dialog .fixture-strip-next .fpl-tile.difficulty-2{background:#36ca80;color:#103c2d}
body:not(.draft-active) .player-dialog .fixture-strip-next .fpl-tile.difficulty-3{background:#f3c84d;color:#42294a}
body:not(.draft-active) .player-dialog .fixture-strip-next .fpl-tile.difficulty-4{background:#e57398;color:#3d102e}
body:not(.draft-active) .player-dialog .fixture-strip-next .fpl-tile.difficulty-5{background:#d52c69;color:#fff}

/* v0.98.51 — Draft-style opponent crests in Classic fixture tiles. */
body:not(.draft-active) .player-dialog .fixture-trends .fixture-strip>.fpl-tile{
 height:82px!important;max-height:82px!important;
 padding:4px 2px!important;
 grid-template-rows:16px minmax(0,1fr) 16px!important;
}
body:not(.draft-active) .player-dialog .classic-fixture-opponent{
 display:flex;flex-direction:column;align-items:center;justify-content:center;
 gap:2px;width:100%;min-width:0;overflow:hidden;
}
body:not(.draft-active) .player-dialog .classic-fixture-crest,
body:not(.draft-active) .player-dialog .classic-fixture-crest-fallback{
 width:19px;height:19px;max-width:19px;max-height:19px;object-fit:contain;flex:0 0 19px;
}
body:not(.draft-active) .player-dialog .classic-fixture-crest[hidden],
body:not(.draft-active) .player-dialog .classic-fixture-crest-fallback[hidden]{display:none!important}
body:not(.draft-active) .player-dialog .classic-fixture-crest-fallback{
 display:grid;place-items:center;border-radius:50%;
 background:#eee6f4;color:#37003c;font-size:7px;font-weight:900;
}
body:not(.draft-active) .player-dialog .classic-fixture-opponent-label{
 display:block;width:100%;overflow:hidden;text-overflow:clip;white-space:nowrap;
 text-align:center;font-size:clamp(8px,2.3vw,10px);font-weight:850;line-height:1.15;
}

/* v0.98.57 — creator house promotion shares deadline card with future AdSense unit.
   Currently no AdSense slot ID: only show a plainly labelled creator preview.
   Ads are never overlaid on the deadline or clicked through accidentally. */
.deadline{display:block!important;padding:0!important;overflow:hidden}
.deadline .deadline-main{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:14px 16px}
.hq-countdown-ad{padding:0 12px 12px;min-width:0}
.hq-countdown-ad-divider{display:flex;align-items:center;gap:9px;color:#d9b7df;font:800 9px/1.3 Arial,sans-serif;letter-spacing:.085em;margin-bottom:9px}
.hq-countdown-ad-divider:before,.hq-countdown-ad-divider:after{content:"";flex:1;height:1px;background:#ffffff35}
.hq-countdown-creator{display:flex;align-items:center;gap:10px;min-height:66px;padding:10px 12px;border:1px solid #77507d;border-radius:9px;background:linear-gradient(110deg,#4e1657,#391040 75%,#481550);box-sizing:border-box;color:#fff}
.hq-countdown-creator-mark{width:42px;height:42px;flex:0 0 42px;display:grid;place-items:center;background:#29002d;border:1px solid #00ff8760;border-radius:9px}
.hq-countdown-creator-mark img{width:33px;height:33px;display:block;object-fit:contain}
.hq-countdown-creator-copy{display:flex;flex:1;flex-direction:column;min-width:0;gap:5px}
.hq-countdown-creator-copy b{font:bold clamp(11px,2.8vw,14px)/1.2 Arial,sans-serif;letter-spacing:.018em;color:#fff}
.hq-countdown-creator-copy small{font:700 clamp(8px,2vw,10px)/1.25 Arial,sans-serif;letter-spacing:.025em;color:#00ff87}
.hq-countdown-creator-chevron{color:#00ff87;font-size:18px;opacity:.7}
/* Future approved ad slot: only one creative is shown. The empty-slot fallback
   requires the AdSense 'data-ad-status=unfilled' response (official status). */
.hq-countdown-ad:has(ins.adsbygoogle[data-ad-status="filled"]) .hq-countdown-creator,
.hq-countdown-ad:has(ins.adsbygoogle[data-ad-status="unfill-optimized"]) .hq-countdown-creator{display:none}
.hq-countdown-ad ins.adsbygoogle[data-ad-status="filled"]{display:block}
.hq-countdown-ad ins.adsbygoogle[data-ad-status="unfilled"]{display:none!important}
@media(max-width:390px){
 .deadline .deadline-main{padding:12px 11px;gap:7px}
 .hq-countdown-ad{padding:0 9px 9px}
 .hq-countdown-creator{gap:8px;padding:9px;min-height:60px}
 .hq-countdown-creator-mark{width:36px;height:36px;flex-basis:36px}
 .hq-countdown-creator-mark img{width:29px;height:29px}
}

/* Classic Table: compact, in-place squad gameweek controls, matching Draft. */
.classic-table-squad-nav{
 display:grid;grid-template-columns:42px minmax(0,1fr) 42px;align-items:center;
 gap:8px;margin:8px 0 11px;padding:5px 8px;
 border:1px solid #e4d2e9;border-radius:10px;background:#f3eaf5;
}
.classic-table-squad-nav strong{
 color:#37003c;text-align:center;font-size:12px;font-weight:850;letter-spacing:.65px;
}
.classic-table-squad-nav button{
 display:flex;align-items:center;justify-content:center;width:42px;height:40px;
 padding:0;border:1px solid #d5bddc;border-radius:9px;background:#fff;
 color:#37003c;font-size:27px;font-weight:700;line-height:1;cursor:pointer;
}
.classic-table-squad-nav button:disabled{opacity:.35;cursor:default;background:#eee9f0}
.classic-table-squad-nav button:not(:disabled):active{background:#e5c9ef}
/* Explicit selection overrides alternating striping and pinned-row colours,
   but never overrides the user's dark-purple own-team highlight. */
.classic-league-table tbody tr.league-row.classic-selected-other-row:not(.mine) > td,
.classic-league-table tbody tr.league-row.classic-selected-other-row:not(.mine):nth-child(odd) > td,
.classic-league-table tbody tr.league-row.classic-selected-other-row:not(.mine):nth-child(even) > td,
.classic-league-table tbody tr.league-row.classic-selected-other-row:not(.mine):hover > td{
 background:#e9d8f1!important;color:#37003c!important;
}
.classic-league-table tbody tr.league-row.classic-selected-other-row:not(.mine) > td strong,
.classic-league-table tbody tr.league-row.classic-selected-other-row:not(.mine) > td small{
 color:#37003c!important;
}

/* The Classic Table's top GW navigator matches Draft's full-width gameweek bar. */
.classic-table-gw-navigation{
 display:flex;align-items:center;justify-content:space-between;gap:12px;
 margin:10px 0 12px;padding:18px 16px;background:#fff;
 border:1px solid #e4dce8;border-top:4px solid transparent;
 border-image:linear-gradient(90deg,#00ff87,#20ceda,#8533ca) 1;
 border-radius:12px;min-height:80px;
}
.classic-table-gw-navigation strong{font-size:17px;color:#37003c;font-weight:850}
.classic-table-gw-nav-arrows{display:flex;gap:9px;align-items:center}
.classic-table-gw-nav-arrows button{
 display:flex;align-items:center;justify-content:center;
 width:48px;height:48px;min-width:48px;border:1px solid #d8c5de;
 border-radius:12px;background:#f2e9f4;color:#37003c;
 font-size:22px;font-weight:750;cursor:pointer;
}
.classic-table-gw-nav-arrows button:disabled{
 opacity:.42;cursor:default;background:#edecef;
}
.classic-table-gw-nav-arrows button:not(:disabled):active{background:#e4d0e9}
/* Same full-width arrow layout as Draft, instead of tiny inline arrows. */
.classic-table-squad-nav{
 grid-template-columns:54px minmax(0,1fr) 54px!important;
 margin:8px 0 12px!important;padding:7px 9px!important;
 background:#f3eaf5!important;border:1px solid #e4d2e9!important;
 border-radius:11px!important;min-height:64px;
}
.classic-table-squad-nav strong{font-size:13px!important;white-space:nowrap}
.classic-table-squad-nav button{
 width:54px!important;height:50px!important;min-height:50px;
 border-radius:11px!important;font-size:29px!important;
 background:#fff!important;box-shadow:0 1px 2px #37003c0d;
}
.classic-table-squad-nav button:disabled{background:#eee9f0!important;opacity:.35}
@media(max-width:480px){
 .classic-table-gw-navigation{padding:14px 12px;min-height:76px}
 .classic-table-gw-navigation strong{font-size:15px}
 .classic-table-gw-nav-arrows button{width:46px;height:46px;min-width:46px}
 .classic-table-squad-nav{grid-template-columns:52px minmax(0,1fr) 52px!important}
 .classic-table-squad-nav button{width:52px!important}
}

/* Compact captain, played-chip and available-chip details for every Classic manager. */
.classic-league-table .league-row .league-row-meta{
 display:flex;flex-wrap:wrap;align-items:center;column-gap:7px;row-gap:4px;
 margin-top:5px;min-height:0;
}
.classic-league-table .league-row .league-row-meta .table-captain{
 font-size:10px;font-weight:800;white-space:nowrap;max-width:100%;
 overflow:hidden;text-overflow:ellipsis;
}
.classic-league-table .league-row .league-row-meta .table-chip{
 background:#caffdf!important;color:#25573b!important;
 font-size:9px;padding:3px 5px;border-radius:5px;
}
.classic-league-table .league-row.mine .league-row-meta .table-chip{
 background:#00ff87!important;color:#37003c!important;
}
.classic-league-table .table-chip-availability{
 display:inline-flex;align-items:center;flex-wrap:wrap;gap:4px;
 max-width:100%;font-size:9px;line-height:1.25;
}
.classic-league-table .table-available-label{
 font-size:9px;font-weight:650;color:#766981;
}
.classic-league-table .table-available-chips{
 display:inline-flex;align-items:center;gap:3px;
}
.classic-league-table .table-available-chip{
 display:inline-flex;align-items:center;justify-content:center;
 min-width:21px;height:18px;padding:1px 3px;border-radius:4px;
 border:1px solid #c4dbd1;background:#edfaf2;color:#21724a;
 font-size:9px;font-weight:850;letter-spacing:0;
}
.classic-league-table .table-no-chips{font-weight:700;color:#82738b}
.classic-league-table .league-row.mine .table-available-label{color:#e2cbe7!important}
.classic-league-table .league-row.mine .table-available-chip{
 background:#baf8d7;color:#27513e!important;border-color:#9bd5b9;
}
.classic-league-table .league-row.mine .table-no-chips{color:#e2cbe7!important}
@media(max-width:620px){
 .classic-league-table .league-row .league-row-meta{column-gap:5px;row-gap:3px}
 .classic-league-table .table-available-label{font-size:8px}
 .classic-league-table .table-available-chip{min-width:19px;height:17px;font-size:8px}
}

/* Classic Table: four tidy lines beneath each manager's name. */
.classic-league-table .league-row .league-row-meta{
 display:flex;flex-direction:column;align-items:flex-start;justify-content:center;
 flex-wrap:nowrap;row-gap:4px;column-gap:0;margin-top:6px;
 min-height:0;max-width:100%;
}
.classic-league-table .table-captain-chip-line,
.classic-league-table .table-chips-line,
.classic-league-table .table-financial-line,
.classic-league-table .table-free-transfers-line{
 display:flex;flex-wrap:wrap;align-items:center;gap:4px 7px;
 font-size:10px;line-height:1.3;max-width:100%;color:#766981;
}
.classic-league-table .table-captain-chip-line{gap:5px 7px}
.classic-league-table .table-chips-line{gap:5px}
.classic-league-table .table-chips-line .table-available-label{font-size:10px;font-weight:650}
.classic-league-table .table-no-chips{font-size:10px;font-weight:750;color:#766981}
.classic-league-table .table-financial-line{gap:4px 12px}
.classic-league-table .table-financial-line b,
.classic-league-table .table-free-transfers-line b{color:#37003c;font-weight:850}
.classic-league-table .league-row.mine .table-captain-chip-line,
.classic-league-table .league-row.mine .table-chips-line,
.classic-league-table .league-row.mine .table-financial-line,
.classic-league-table .league-row.mine .table-free-transfers-line,
.classic-league-table .league-row.mine .table-no-chips{
 color:#e9dceb!important;
}
.classic-league-table .league-row.mine .table-financial-line b,
.classic-league-table .league-row.mine .table-free-transfers-line b{color:#fff!important}
.classic-league-table .league-row.mine .table-chips-line .table-available-label{color:#e9dceb!important}
@media(max-width:620px){
 .classic-league-table .league-row .league-row-meta{gap:4px;margin-top:6px}
 .classic-league-table .table-captain-chip-line,
 .classic-league-table .table-chips-line,
 .classic-league-table .table-financial-line,
 .classic-league-table .table-free-transfers-line{font-size:9px}
 .classic-league-table .table-financial-line{gap:3px 8px}
 .classic-league-table .table-chips-line .table-available-label,
 .classic-league-table .table-no-chips{font-size:9px}
}

/* iOS can retain :hover after tapping a row. Only actual selection may tint it. */
@media (hover:none), (pointer:coarse){
 .classic-league-table tbody tr.league-row:not(.mine):not(.classic-selected-other-row) > td,
 .classic-league-table tbody tr.league-row:not(.mine):not(.classic-selected-other-row):hover > td,
 .classic-league-table tbody tr.league-row:not(.mine):not(.classic-selected-other-row):active > td{
   background:#fff!important;
 }
 .classic-league-table tbody tr.league-row:not(.mine):not(.classic-selected-other-row):nth-child(even) > td,
 .classic-league-table tbody tr.league-row:not(.mine):not(.classic-selected-other-row):nth-child(even):hover > td,
 .classic-league-table tbody tr.league-row:not(.mine):not(.classic-selected-other-row):nth-child(even):active > td{
   background:#f8f6fa!important;
 }
 .classic-league-table tbody tr.league-row.classic-selected-other-row:not(.mine) > td,
 .classic-league-table tbody tr.league-row.classic-selected-other-row:not(.mine):hover > td,
 .classic-league-table tbody tr.league-row.classic-selected-other-row:not(.mine):active > td{
   background:#e9d8f1!important;
 }
}

/* Hide unavailable Classic table pagination controls while retaining centered team range. */
.classic-table-pager button:disabled{visibility:hidden!important;pointer-events:none!important;}

/* Classic Table: subtle points gap below total, relative to own team. */
.classic-league-table td.classic-total-with-gap{
 text-align:center;vertical-align:middle;
}
.classic-league-table td.classic-total-with-gap>strong{
 display:block;font-size:inherit;font-weight:850;color:inherit;
}
.classic-league-table .classic-points-gap{
 display:block!important;max-width:100%;margin-top:5px;
 font-size:9px!important;line-height:1.15!important;font-weight:650!important;
 color:#8c7f92!important;white-space:normal;letter-spacing:-.01em;
 text-align:center;
}
.classic-league-table .classic-points-gap.ahead{color:#7f7884!important}
.classic-league-table .classic-points-gap.behind{color:#5c9580!important}
.classic-league-table .league-row.mine .classic-points-gap{color:#e7d5eb!important}
@media(max-width:620px){
 .classic-league-table .classic-points-gap{font-size:8px!important;line-height:1.15!important}
}

/* Two-line points gap: red ahead, green behind, aligned beneath Total. */
.classic-league-table .classic-points-gap{
 display:flex!important;flex-direction:column;align-items:center;
 justify-content:center;gap:1px;margin-top:5px;text-align:center;
 white-space:nowrap!important;
}
.classic-league-table .classic-points-gap-amount,
.classic-league-table .classic-points-gap-direction{
 display:block!important;white-space:nowrap!important;
 font-size:9px!important;line-height:1.15!important;font-weight:750!important;
}
.classic-league-table .classic-points-gap.ahead,
.classic-league-table .classic-points-gap.ahead .classic-points-gap-amount,
.classic-league-table .classic-points-gap.ahead .classic-points-gap-direction{
 color:#c73956!important;
}
.classic-league-table .classic-points-gap.behind,
.classic-league-table .classic-points-gap.behind .classic-points-gap-amount,
.classic-league-table .classic-points-gap.behind .classic-points-gap-direction{
 color:#16825b!important;
}
.classic-league-table .classic-points-gap.level,
.classic-league-table .classic-points-gap.level .classic-points-gap-amount,
.classic-league-table .classic-points-gap.level .classic-points-gap-direction{
 color:#83798a!important;
}
@media(max-width:620px){
 .classic-league-table .classic-points-gap-amount,
 .classic-league-table .classic-points-gap-direction{font-size:8px!important}
}

/* Classic Ownership: heading and full five-player pitch must stay within the viewport. */
body:not(.fpl-theme) .ownership-panel{
 min-width:0;max-width:100%;box-sizing:border-box;
}
body:not(.fpl-theme) .ownership-panel h2{
 max-width:100%;white-space:normal;overflow-wrap:normal;
 text-wrap:balance;line-height:1.2;
}
body:not(.fpl-theme) .ownership-panel .ownership-pitch,
body:not(.fpl-theme) .ownership-panel .ownership-position,
body:not(.fpl-theme) .ownership-panel .ownership-position-players{
 min-width:0;max-width:100%;box-sizing:border-box;
}
body:not(.fpl-theme) .ownership-panel .ownership-player{
 min-width:0;max-width:19%;box-sizing:border-box;
}
@media(max-width:620px){
 body:not(.fpl-theme) .ownership-panel{padding:10px 8px}
 body:not(.fpl-theme) .ownership-panel h2{
  font-size:clamp(14px,4vw,18px);letter-spacing:-.025em;
  overflow-wrap:break-word;white-space:normal;
 }
 body:not(.fpl-theme) .ownership-panel .ownership-pitch{
  width:100%;padding:10px 2px;border-width:3px;
 }
 body:not(.fpl-theme) .ownership-panel .ownership-position-players{gap:2px}
 body:not(.fpl-theme) .ownership-panel .ownership-player{flex:0 1 19%;width:19%}
 body:not(.fpl-theme) .ownership-panel .ownership-name,
 body:not(.fpl-theme) .ownership-panel .ownership-count,
 body:not(.fpl-theme) .ownership-panel .ownership-pct{min-width:0;max-width:100%}
}

/* Moves: player tiles open the existing Classic player popup. */
.move-players>.move-player-trigger{
 display:flex;flex-direction:column;align-items:center;gap:2px;min-width:0;
 width:100%;padding:0;border:0;background:transparent;color:inherit;
 font:inherit;cursor:pointer;text-align:center;border-radius:8px;
}
.move-players>.move-player-trigger strong{font-size:12px;text-align:center}
.move-players>.move-player-trigger:focus-visible{outline:2px solid #00bc78;outline-offset:3px}
@media(hover:hover) and (pointer:fine){.move-players>.move-player-trigger:hover strong{text-decoration:underline}}


/* Weekly Transfers now displays only the next-gameweek allowance. */
.classic-weekly-transfers .weekly-ft-balances{grid-template-columns:minmax(0,1fr)}

/* Classic Table: keep "Chips available" and all four badges on one line. */
.classic-league-table .league-row .league-row-meta .table-chips-line{
 display:flex!important;flex-flow:row nowrap!important;align-items:center!important;
 gap:3px!important;width:100%;max-width:100%;min-width:0;
 white-space:nowrap!important;
}
.classic-league-table .league-row .league-row-meta .table-chips-line .table-available-label{
 flex:0 0 auto;white-space:nowrap!important;margin:0;
 font-size:clamp(7px,1.85vw,9px)!important;letter-spacing:-.025em;
}
.classic-league-table .league-row .league-row-meta .table-chips-line .table-available-chips{
 display:inline-flex!important;flex:0 1 auto;flex-wrap:nowrap!important;
 align-items:center;gap:2px!important;min-width:0;
}
.classic-league-table .league-row .league-row-meta .table-chips-line .table-available-chip{
 flex:0 0 auto;box-sizing:border-box;min-width:17px!important;
 width:auto;height:17px!important;padding:1px 2px!important;
 font-size:clamp(7px,1.7vw,8px)!important;line-height:1!important;
}

/* Classic captaincy GW points: compact six-column grid, no horizontal scroll. */
.captaincy-player{grid-template-columns:22px 34px minmax(0,1fr) 48px auto 40px;gap:7px}
.captaincy-gw-points{text-align:center;font-size:12px;font-weight:800;white-space:nowrap}
.captaincy-columns{display:grid;grid-template-columns:minmax(0,1fr) 48px 48px 40px;gap:7px;align-items:center;padding:2px 3px 5px;color:#69436e;font-weight:800;font-size:10px;text-align:center}
.captaincy-columns button{font:inherit;font-weight:900;color:#37003c;background:transparent;border:0;padding:5px 0;cursor:pointer;white-space:nowrap}
.captaincy-columns button[aria-pressed="true"]{text-decoration:underline;text-underline-offset:3px}
@media(max-width:760px){.captaincy-player{grid-template-columns:20px 33px minmax(0,1fr) 45px 49px 37px;gap:5px}.captaincy-columns{grid-template-columns:minmax(0,1fr) 45px 49px 37px;gap:5px}.captaincy-gw-points{font-size:12px}.captaincy-name,.captaincy-fraction,.captaincy-percent{font-size:12px}.captaincy-percent{min-width:0}}

/* Captaincy sorting: keep all three tappable headers within the mobile grid. */
.captaincy-columns button{min-width:0;text-align:center;overflow:visible;font-size:inherit;touch-action:manipulation}
.captaincy-columns button:focus-visible{outline:2px solid var(--purple);outline-offset:2px;border-radius:4px}

/* Captaincy table: header and rows use the exact same six-track grid. */
.captaincy-card .captaincy-columns,
.captaincy-card .captaincy-player{
  grid-template-columns:22px 34px minmax(0,1fr) 58px 62px 43px;
  column-gap:6px;
  align-items:center;
}
.captaincy-card .captaincy-columns{
  padding:8px 0 7px;
  font-size:10px;
  font-weight:900;
  text-align:center;
}
.captaincy-card .captaincy-player-heading{
  grid-column:1 / span 3;
  justify-self:start;
  padding-left:3px;
  letter-spacing:.02em;
}
.captaincy-card .captaincy-columns button{
  width:100%;min-width:0;padding:8px 0;
  font-size:10px;line-height:1.15;text-align:center;
  white-space:nowrap;
}
.captaincy-card .captaincy-gw-points,
.captaincy-card .captaincy-fraction,
.captaincy-card .captaincy-percent{
  min-width:0;text-align:center;
  justify-self:stretch;
}
.captaincy-card .captaincy-player{cursor:pointer}
.captaincy-card .captaincy-player:hover{background:#37003c08}
@media(max-width:760px){
 .captaincy-card .captaincy-columns,
 .captaincy-card .captaincy-player{
   grid-template-columns:18px 31px minmax(0,1fr) 52px 55px 37px;
   column-gap:5px;
 }
 .captaincy-card .captaincy-columns{font-size:9px}
 .captaincy-card .captaincy-columns button{font-size:9px}
 .captaincy-card .captaincy-name{font-size:12px}
 .captaincy-card .captaincy-gw-points,
 .captaincy-card .captaincy-fraction,
 .captaincy-card .captaincy-percent{font-size:12px}
}

/* Locally curated Classic My Rivals league (same league table styling). */
.rivals-toolbar{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px}
.rivals-toolbar strong{font-size:16px}.rivals-toolbar p{margin:5px 0 0}
.rivals-add-form{display:flex;flex-direction:column;gap:7px;min-width:min(100%,255px)}
.rivals-add-form label{font-size:11px;font-weight:800}
.rivals-add-form>div{display:flex;gap:7px}
.rivals-add-form input{width:105px;min-width:0;border:1px solid #cbbfd0;border-radius:8px;padding:10px;color:#37003c}
.rivals-add-form button{white-space:nowrap;padding:10px}
.rivals-checkbox-label{display:inline-flex;align-items:center;gap:9px;min-height:40px;padding:7px 10px;margin:8px 0;background:#f5f1f7;border:1px solid #e3dbe8;border-radius:9px;font-weight:800;font-size:12px;cursor:pointer}
.rivals-checkbox-label input{width:18px;height:18px;accent-color:#37003c;cursor:pointer}
@media(max-width:760px){.rivals-toolbar{display:block}.rivals-add-form{margin-top:12px}.rivals-add-form>div{width:100%}.rivals-add-form input{flex:1}}

/* Official worldwide overall rank and verified gameweek movement in Classic squads. */
.classic-rank-strip{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(110px,auto);align-items:center;gap:12px;padding:12px 15px;margin:10px 0 13px;border:1px solid #dfd8e4;border-radius:12px;background:#f7f4f9;color:#37003c}
.classic-rank-label{font-size:12px;font-weight:850;text-transform:uppercase;letter-spacing:.02em}
.classic-rank-label small{display:block;margin-top:3px;font-weight:600;font-size:10px;color:#77627b;text-transform:none}
.classic-rank-value{font-size:19px;font-weight:950;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.classic-rank-change{display:flex;flex-direction:column;align-items:flex-end;justify-content:center;gap:3px;font-size:14px;font-weight:900;font-variant-numeric:tabular-nums;white-space:nowrap}
.classic-rank-change small{font-size:10px;font-weight:650;color:#726677}
.classic-rank-change.positive{color:#08764d}.classic-rank-change.negative{color:#c52f4b}.classic-rank-change.neutral{color:#726677}
@media(max-width:400px){.classic-rank-strip{grid-template-columns:minmax(0,1fr) auto minmax(82px,auto);gap:7px;padding:10px}.classic-rank-label{font-size:10px}.classic-rank-value{font-size:16px}.classic-rank-change{font-size:12px}}

/* Overall rank sits directly beneath the official GW score, inside the same pitch card. */
.pitch-area .classic-rank-strip,.pitch-board .classic-rank-strip,.league-expanded .pitch-wrap .classic-rank-strip{margin:0;border-radius:0 0 12px 12px}
.pitch-summary + .classic-rank-strip{margin:0;border-top:1px solid #dce6e1;border-left:0;border-right:0;border-bottom:0;border-radius:0;background:#eef8f3;box-shadow:none}

/* Three aligned values under Official GW Score: worldwide overall, GW rank, weekly movement. */
.pitch-summary + .classic-rank-strip{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;gap:9px;padding:12px 14px}
.classic-rank-stat{display:flex;flex-direction:column;align-items:flex-start;gap:5px;min-width:0}
.classic-rank-stat .classic-rank-label{font-size:10px;line-height:1.2}
.classic-rank-stat .classic-rank-label small{font-size:9px}
.classic-rank-stat .classic-rank-value{font-size:16px;line-height:1.2;overflow-wrap:anywhere}
.pitch-summary + .classic-rank-strip .classic-rank-change{font-size:13px;text-align:right}
.pitch-summary + .classic-rank-strip .classic-rank-change small{font-size:9px}
@media(max-width:400px){.pitch-summary + .classic-rank-strip{gap:6px;padding:10px 8px}.classic-rank-stat .classic-rank-value{font-size:13px}.pitch-summary + .classic-rank-strip .classic-rank-change{font-size:11px}.classic-rank-stat .classic-rank-label{font-size:9px}}

/* Rank headings now sit on a consistent single line over the numbers. */
.pitch-summary + .classic-rank-strip .classic-rank-stat{justify-content:center;gap:7px}
.pitch-summary + .classic-rank-strip .classic-rank-label{display:block;white-space:nowrap;font-weight:900;line-height:1.1}
.pitch-summary + .classic-rank-strip .classic-rank-value{line-height:1.25}

/* Secondary close action for expanded Classic and Draft squads. */
.league-expanded-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px;min-height:44px;margin-bottom:8px}
.league-expanded-actions .rivals-checkbox-label{margin-left:0;margin-right:auto}
.league-expanded-actions h2{margin:0 auto 0 0}
.league-squad-close{display:inline-flex;align-items:center;justify-content:center;flex:0 0 44px;width:44px;height:44px;padding:0;border:1px solid rgba(55,10,64,.18);border-radius:12px;background:#fff;color:#39053f;font-size:32px;font-weight:400;line-height:1;cursor:pointer}
.league-squad-close:hover{background:#f3eafa}
.league-squad-close:focus-visible{outline:3px solid #18e893;outline-offset:2px}

/* Match new GW transfer and points-hit rows to the financial metadata above. */
.classic-league-table .table-gw-transfers-line,
.classic-league-table .table-points-hit-line{
 display:flex;flex-wrap:wrap;align-items:center;gap:4px 7px;
 font-size:10px;line-height:1.3;max-width:100%;color:#766981;
}
.classic-league-table .table-gw-transfers-line b,
.classic-league-table .table-points-hit-line b{color:#37003c;font-weight:850}
.classic-league-table .league-row.mine .table-gw-transfers-line,
.classic-league-table .league-row.mine .table-points-hit-line{color:#e9dceb!important}
.classic-league-table .league-row.mine .table-gw-transfers-line b,
.classic-league-table .league-row.mine .table-points-hit-line b{color:#fff!important}
@media(max-width:620px){
 .classic-league-table .table-gw-transfers-line,
 .classic-league-table .table-points-hit-line{font-size:9px}
}

/* A transfer points hit is a deduction, highlighted consistently for all rows. */
.classic-league-table .table-free-transfers-line b.points-hit-deduction,
.classic-league-table .league-row.mine .table-free-transfers-line b.points-hit-deduction{color:#d32f46!important}

/* Classic Captaincy: include sortable GW average on every mobile/tablet width. */
@media (max-width:1099px), (hover:none), (pointer:coarse){
 .captaincy-card .captaincy-columns,
 .captaincy-card .captaincy-player{
  grid-template-columns:17px 28px minmax(62px,1fr) minmax(37px,40px) minmax(37px,43px) minmax(44px,48px) minmax(28px,32px);
  column-gap:3px;min-width:0;
 }
 .captaincy-card .captaincy-columns button{
  font-size:clamp(8px,2.05vw,10px);line-height:1.12;white-space:normal;overflow-wrap:normal;
 }
 .captaincy-card .captaincy-columns{font-size:9px}
 .captaincy-card .captaincy-shirt{width:28px;height:30px}
 .captaincy-card .captaincy-name{font-size:clamp(10px,2.8vw,12px)}
 .captaincy-card .captaincy-gw-average,
 .captaincy-card .captaincy-gw-points,
 .captaincy-card .captaincy-fraction,
 .captaincy-card .captaincy-percent{
  min-width:0;justify-self:stretch;text-align:center;font-size:clamp(10px,2.8vw,12px);font-weight:850;font-variant-numeric:tabular-nums;
 }
 .captaincy-card .captaincy-gw-average{color:#087d56}
 .captaincy-card .captaincy-player{padding-left:0;padding-right:0}
}

/* Captaincy mobile: enforce the same seven columns for headings and values.
   Explicit tracks prevent the % field wrapping to a second grid row. */
@media (max-width:1099px), (hover:none), (pointer:coarse){
 body:not(.fpl-theme) .captaincy-card .captaincy-columns,
 body:not(.fpl-theme) .captaincy-card .captaincy-player{
  display:grid!important;
  grid-template-columns:17px 28px minmax(0,1fr) 40px 43px 48px 33px!important;
  column-gap:3px!important;
  align-items:center!important;
  width:100%;min-width:0;box-sizing:border-box;
 }
 body:not(.fpl-theme) .captaincy-card .captaincy-columns > .captaincy-player-heading{grid-column:1 / 4;grid-row:1}
 body:not(.fpl-theme) .captaincy-card .captaincy-columns > button:nth-child(2){grid-column:4;grid-row:1}
 body:not(.fpl-theme) .captaincy-card .captaincy-columns > button:nth-child(3){grid-column:5;grid-row:1}
 body:not(.fpl-theme) .captaincy-card .captaincy-columns > button:nth-child(4){grid-column:6;grid-row:1}
 body:not(.fpl-theme) .captaincy-card .captaincy-columns > button:nth-child(5){grid-column:7;grid-row:1}
 body:not(.fpl-theme) .captaincy-card .captaincy-columns > button{
  min-width:0!important;padding:8px 0!important;
  text-align:center!important;justify-self:stretch!important;
  font-size:clamp(8px,2.05vw,10px)!important;line-height:1.05!important;
  white-space:normal!important;overflow-wrap:normal;
 }
 body:not(.fpl-theme) .captaincy-card .captaincy-player > .captaincy-gw-average{grid-column:4;grid-row:1}
 body:not(.fpl-theme) .captaincy-card .captaincy-player > .captaincy-gw-points{grid-column:5;grid-row:1}
 body:not(.fpl-theme) .captaincy-card .captaincy-player > .captaincy-fraction{grid-column:6;grid-row:1}
 body:not(.fpl-theme) .captaincy-card .captaincy-player > .captaincy-percent{grid-column:7;grid-row:1;min-width:0}
}

/* Compact verified selling price, only when provided by FPL. */
.classic-pitch-sell-strip{display:block;width:max-content;max-width:100%;margin:3px auto 0;padding:2px 5px;border:1px solid rgba(90,60,113,.24);border-radius:5px;background:rgba(255,255,255,.88);color:#51345e;font-size:9px;font-weight:650;line-height:1.2;white-space:nowrap;box-sizing:border-box}
@media(max-width:520px){.classic-pitch-sell-strip{font-size:8px;padding:2px 3px}}

/* Compact, single-row Classic expanded squad heading on desktop and mobile. */
.classic-squad-topbar{display:grid;grid-template-columns:minmax(0,auto) minmax(0,1fr) 44px;align-items:center;column-gap:8px;min-height:48px;margin-bottom:10px;width:100%}
.classic-squad-topbar .rivals-checkbox-label{display:inline-flex;justify-self:start;align-items:center;gap:5px;padding:6px 8px;margin:0;min-height:38px;max-width:100%;font-size:clamp(9px,2.7vw,12px);line-height:1.1;white-space:normal}
.classic-squad-topbar .rivals-checkbox-label input{flex:0 0 17px;width:17px;height:17px;margin:0}
.classic-squad-topbar .squad-financial-header{width:100%;min-width:0;margin:0;justify-content:center}
.classic-squad-topbar .squad-financial-title{min-width:0;max-width:100%;text-align:center}
.classic-squad-topbar .squad-financial-title .squad-gw-title{font-size:clamp(11px,3vw,17px);overflow-wrap:anywhere;line-height:1.18}
.classic-squad-topbar .squad-financial-title .squad-manager-name{font-size:clamp(10px,2.6vw,13px);margin-top:3px;overflow-wrap:anywhere}
.classic-squad-topbar .league-squad-close{justify-self:end}
@media(max-width:400px){.classic-squad-topbar{grid-template-columns:minmax(0,112px) minmax(0,1fr) 40px;column-gap:5px}.classic-squad-topbar .rivals-checkbox-label{padding:5px;font-size:10px}.classic-squad-topbar .league-squad-close{width:40px;height:40px;flex-basis:40px}}

/* Keep the expanded Classic squad header readable on narrow iPhones. */
.rivals-label-compact{display:none}
@media(max-width:600px){
 .classic-squad-topbar{grid-template-columns: minmax(0,78px) minmax(0,1fr) 40px;column-gap:8px}
 .classic-squad-topbar .rivals-checkbox-label{width:100%;box-sizing:border-box;margin:0;min-height:40px;padding:5px 4px;gap:5px;font-size:11px;justify-content:flex-start}
 .classic-squad-topbar .rivals-checkbox-label input{width:16px;height:16px;flex-basis:16px}
 .classic-squad-topbar .rivals-label-full{display:none}
 .classic-squad-topbar .rivals-label-compact{display:inline}
 .classic-squad-topbar .squad-financial-title .squad-gw-title{font-size:clamp(11px,3.2vw,15px);line-height:1.15}
 .classic-squad-topbar .squad-financial-title .squad-manager-name{font-size:11px}
 .classic-squad-topbar .league-squad-close{width:40px;height:40px;flex-basis:40px}
}

/* Expanded Classic header: team and manager left, Rivals middle, close right. */
.classic-squad-topbar{grid-template-columns:minmax(0,1fr) auto 44px}
.classic-squad-topbar .squad-financial-header{justify-content:flex-start;text-align:left}
.classic-squad-topbar .squad-financial-title{text-align:left}
.classic-squad-topbar .rivals-checkbox-label{justify-self:end;margin:0}
@media(max-width:600px){
 .classic-squad-topbar{grid-template-columns:minmax(0,1fr) 78px 40px;column-gap:8px}
 .classic-squad-topbar .rivals-checkbox-label{justify-self:end}
 .classic-squad-topbar .squad-financial-title .squad-gw-title{overflow-wrap:anywhere}
}

/* Prioritise team-name width; keep the Rivals control tight against Close. */
.classic-squad-topbar{
 grid-template-columns:minmax(0,1fr) max-content 44px;
 column-gap:5px;
}
.classic-squad-topbar .squad-financial-header{min-width:0;justify-content:flex-start}
.classic-squad-topbar .squad-financial-title{min-width:0;max-width:100%;text-align:left}
.classic-squad-topbar .rivals-checkbox-label{justify-self:end;width:auto;max-width:100%;margin:0;padding:5px 7px;gap:5px}
@media(max-width:600px){
 .classic-squad-topbar{grid-template-columns:minmax(0,1fr) 67px 40px;column-gap:4px}
 .classic-squad-topbar .rivals-checkbox-label{width:67px;min-width:0;min-height:40px;padding:4px 3px;gap:3px;font-size:10px;white-space:nowrap}
 .classic-squad-topbar .rivals-checkbox-label input{flex:0 0 15px;width:15px;height:15px}
 .classic-squad-topbar .league-squad-close{width:40px;height:40px;flex-basis:40px}
 .classic-squad-topbar .squad-financial-title .squad-gw-title{font-size:clamp(11px,3.15vw,15px)}
}

/* Classic expanded header: checkbox left, centred manager and team, close right. */
.classic-squad-topbar{
 display:grid;
 grid-template-columns:128px minmax(0,1fr) 44px;
 gap:6px;
 align-items:center;
 width:100%;
 min-width:0;
 box-sizing:border-box;
}
.classic-squad-topbar .rivals-checkbox-label{
 justify-self:start;
 width:auto;
 max-width:100%;
 box-sizing:border-box;
 display:inline-flex;
 align-items:center;
 justify-content:flex-start;
 margin:0;
 padding:5px 7px;
 gap:5px;
 min-height:38px;
 font-size:11px;
 white-space:nowrap;
}
.classic-squad-topbar .rivals-label-full{display:inline}
.classic-squad-topbar .rivals-label-compact{display:none}
.classic-squad-topbar .rivals-checkbox-label .rivals-label-full{font-size:0}
.classic-squad-topbar .rivals-checkbox-label .rivals-label-full::after{content:"Add to Rivals";font-size:11px}
.classic-squad-topbar .squad-financial-header{
 display:flex;
 justify-content:center;
 min-width:0;
 width:100%;
 margin:0;
}
.classic-squad-topbar .squad-financial-title{text-align:center;min-width:0;max-width:100%}
.classic-squad-topbar .league-squad-close{justify-self:end}
@media(max-width:600px){
 .classic-squad-topbar{grid-template-columns:101px minmax(0,1fr) 40px;gap:4px}
 .classic-squad-topbar .rivals-checkbox-label{width:auto;padding:4px 2px;gap:3px;font-size:10px;min-width:0}
 .classic-squad-topbar .rivals-checkbox-label input{flex:0 0 15px;width:15px;height:15px}
 .classic-squad-topbar .rivals-checkbox-label .rivals-label-full::after{font-size:10px}
 .classic-squad-topbar .squad-financial-title .squad-gw-title{font-size:clamp(11px,3vw,15px);overflow-wrap:anywhere}
 .classic-squad-topbar .squad-financial-title .squad-manager-name{font-size:11px}
 .classic-squad-topbar .league-squad-close{width:40px;height:40px;flex-basis:40px}
}

/* Three-line Rivals league label in expanded Classic team header. */
.rivals-label-stacked{display:none}
.classic-squad-topbar .rivals-checkbox-label{white-space:normal;text-align:left;min-height:48px}
.classic-squad-topbar .rivals-label-full,
.classic-squad-topbar .rivals-label-compact{display:none}
.classic-squad-topbar .rivals-label-stacked{
 display:flex;
 flex-direction:column;
 align-items:flex-start;
 justify-content:center;
 gap:0;
 line-height:1.05;
 font-size:11px;
 font-weight:800;
 white-space:nowrap;
}
@media(max-width:600px){
 .classic-squad-topbar .rivals-checkbox-label{padding:4px 3px;min-height:48px}
 .classic-squad-topbar .rivals-label-stacked{font-size:10px}
}

/* Final compact two-line Rivals label and centred Classic team title. */
.classic-squad-topbar .rivals-checkbox-label{align-items:center;justify-self:start;min-width:0}
.classic-squad-topbar .rivals-label-stacked{display:flex;flex-direction:column;align-items:flex-start;gap:1px;line-height:1.15;font-size:11px}
.classic-squad-topbar .squad-financial-header{display:flex;justify-content:center;align-items:center;text-align:center;min-width:0}
.classic-squad-topbar .squad-financial-title{width:100%;max-width:100%;min-width:0;text-align:center}
.classic-squad-topbar .squad-financial-title .squad-gw-title{display:flex;justify-content:center;text-align:center;width:100%;margin:0 auto;line-height:1.2}
.classic-squad-topbar .squad-financial-title .squad-manager-name{text-align:center;width:100%}
@media(max-width:600px){
 .classic-squad-topbar{grid-template-columns:82px minmax(0,1fr) 40px;gap:4px}
 .classic-squad-topbar .rivals-checkbox-label{padding:4px 2px;gap:4px;min-height:42px}
 .classic-squad-topbar .rivals-label-stacked{font-size:10px}
}

/* Classic squad header: true centre alignment, larger checkbox, three-line Rivals label. */
.classic-squad-topbar{
 display:grid;
 grid-template-columns:minmax(0,112px) minmax(0,1fr) minmax(0,112px);
 column-gap:6px;
 align-items:center;
 box-sizing:border-box;
 width:100%;
 min-width:0;
}
.classic-squad-topbar .rivals-checkbox-label{
 justify-self:start;
 display:inline-flex;
 align-items:center;
 justify-content:flex-start;
 width:auto;
 max-width:100%;
 min-height:48px;
 padding:5px 6px;
 gap:6px;
 margin:0;
 text-align:left;
 white-space:normal;
}
.classic-squad-topbar .rivals-checkbox-label input{
 width:21px;
 height:21px;
 min-width:21px;
 flex:0 0 21px;
 margin:0;
}
.classic-squad-topbar .rivals-label-full,
.classic-squad-topbar .rivals-label-compact{display:none}
.classic-squad-topbar .rivals-label-stacked{
 display:flex;
 flex-direction:column;
 gap:1px;
 align-items:flex-start;
 justify-content:center;
 white-space:nowrap;
 font-size:11px;
 line-height:1.1;
}
.classic-squad-topbar .rivals-label-stacked .rivals-light{font-weight:400}
.classic-squad-topbar .rivals-label-stacked .rivals-emphasis{font-weight:800}
.classic-squad-topbar .squad-financial-header{
 display:flex;
 justify-content:center;
 align-items:center;
 width:100%;
 min-width:0;
 margin:0;
 text-align:center;
}
.classic-squad-topbar .squad-financial-title{width:100%;min-width:0;max-width:100%;text-align:center}
.classic-squad-topbar .squad-financial-title .squad-gw-title{
 display:flex;
 justify-content:center;
 width:100%;
 text-align:center;
 margin:0 auto;
 line-height:1.18;
}
.classic-squad-topbar .squad-financial-title .squad-manager-name{text-align:center;width:100%}
.classic-squad-topbar .league-squad-close{justify-self:end}
@media(max-width:600px){
 .classic-squad-topbar{grid-template-columns:minmax(0,91px) minmax(0,1fr) minmax(0,91px);column-gap:4px}
 .classic-squad-topbar .rivals-checkbox-label{padding:4px 2px;gap:4px;min-height:46px}
 .classic-squad-topbar .rivals-checkbox-label input{width:20px;height:20px;min-width:20px;flex-basis:20px}
 .classic-squad-topbar .rivals-label-stacked{font-size:10px}
 .classic-squad-topbar .league-squad-close{width:40px;height:40px;flex-basis:40px}
}

/* Bold all three Rivals label lines and subtly offset team/manager left. */
.classic-squad-topbar .rivals-label-stacked .rivals-line{font-weight:800}
.classic-squad-topbar .squad-financial-header{position:relative;left:-12px}
@media(max-width:600px){.classic-squad-topbar .squad-financial-header{left:-8px}}

/* Match the non-emphasised Rivals label lines to the manager-name typography. */
.classic-squad-topbar .rivals-label-stacked .rivals-line:not(.rivals-emphasis){
 font-size:clamp(10px,2.8vw,13px);
 font-weight:500;
 color:#706077;
 line-height:1.3;
}
.classic-squad-topbar .rivals-label-stacked .rivals-line.rivals-emphasis{
 font-weight:800;
}
@media(max-width:600px){
 .classic-squad-topbar .rivals-label-stacked .rivals-line:not(.rivals-emphasis){font-size:11px}
}


/* v0.98.93: played-chip badges are green, not purple.
   The mint used state is visually distinct from the muted available chip tiles. */
.gw-chip,
.classic-chip-inventory .chip-status.used {
  background:#d9f9e7;
  border-color:#8edbb2;
  color:#087546;
}
.gw-chip {
  background:#00e896;
  color:#163d2f;
  border:1px solid #00d584;
}
.classic-chip-inventory .chip-status.used strong,
.classic-chip-inventory .chip-status.used span {
  color:#087546;
}


/* v0.98.95 — mobile Classic squad matches the desktop reference:
   GW score + used chip, ranks, full pitch, then four-person substitutes.
   CSS-only reorder; published data and player interaction remain unchanged. */
@media (max-width:1099px), (hover:none), (pointer:coarse) {
  body:not(.fpl-theme) .league-expanded .pitch-panel,
  body:not(.fpl-theme) .classic-squad-view .pitch-panel {
    display:flex!important;
    flex-direction:column!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    margin:0 0 10px!important;
    padding:0!important;
    overflow:hidden!important;
    border:1px solid #c7dfd0!important;
    border-radius:13px!important;
    background:#e7f7ed!important;
    box-shadow:none!important;
  }
  body:not(.fpl-theme) .league-expanded .pitch-panel>.pitch-summary,
  body:not(.fpl-theme) .classic-squad-view .pitch-panel>.pitch-summary {
    order:0!important;
    display:flex!important;
    align-items:center!important;
    flex-wrap:wrap!important;
    justify-content:flex-start!important;
    gap:5px 8px!important;
    width:100%!important;
    min-height:43px!important;
    margin:0!important;
    padding:10px 12px!important;
    box-sizing:border-box!important;
    background:#eef9f3!important;
    border-bottom:1px solid #d9e8df!important;
    color:#527466!important;
    font-size:11px!important;
    line-height:1.35!important;
  }
  body:not(.fpl-theme) .league-expanded .pitch-panel>.pitch-summary .classic-score-chip,
  body:not(.fpl-theme) .classic-squad-view .pitch-panel>.pitch-summary .classic-score-chip {
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    min-height:23px!important;
    margin:0!important;
    padding:4px 9px!important;
    border:1px solid #00d584!important;
    border-radius:6px!important;
    background:#00e896!important;
    color:#163d2f!important;
    font-size:10px!important;
    font-weight:850!important;
    white-space:nowrap!important;
  }
  body:not(.fpl-theme) .league-expanded .pitch-panel>.classic-rank-strip,
  body:not(.fpl-theme) .classic-squad-view .pitch-panel>.classic-rank-strip {
    order:1!important;
    display:grid!important;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.05fr)!important;
    align-items:center!important;
    gap:5px!important;
    width:100%!important;
    min-width:0!important;
    margin:0!important;
    padding:11px 9px!important;
    box-sizing:border-box!important;
    background:#eef9f3!important;
    border:0!important;
    border-bottom:1px solid #d4e8dc!important;
    border-radius:0!important;
    box-shadow:none!important;
  }
  body:not(.fpl-theme) .league-expanded .pitch-panel .classic-rank-stat,
  body:not(.fpl-theme) .classic-squad-view .pitch-panel .classic-rank-stat {
    display:flex!important;
    flex-direction:column!important;
    align-items:flex-start!important;
    gap:5px!important;
    min-width:0!important;
  }
  body:not(.fpl-theme) .league-expanded .pitch-panel .classic-rank-label,
  body:not(.fpl-theme) .classic-squad-view .pitch-panel .classic-rank-label {
    font-size:clamp(8px,2.1vw,10px)!important;
    line-height:1.15!important;
    white-space:nowrap!important;
  }
  body:not(.fpl-theme) .league-expanded .pitch-panel .classic-rank-value,
  body:not(.fpl-theme) .classic-squad-view .pitch-panel .classic-rank-value {
    font-size:clamp(13px,3.7vw,18px)!important;
    line-height:1.15!important;
    white-space:nowrap!important;
  }
  body:not(.fpl-theme) .league-expanded .pitch-panel .classic-rank-change,
  body:not(.fpl-theme) .classic-squad-view .pitch-panel .classic-rank-change {
    min-width:0!important;
    text-align:right!important;
    align-items:flex-end!important;
    font-size:clamp(11px,3.2vw,16px)!important;
    white-space:normal!important;
  }
  body:not(.fpl-theme) .league-expanded .pitch-panel .classic-rank-change small,
  body:not(.fpl-theme) .classic-squad-view .pitch-panel .classic-rank-change small {
    font-size:clamp(7px,1.85vw,9px)!important;
    white-space:normal!important;
    text-align:right!important;
    line-height:1.2!important;
  }
  body:not(.fpl-theme) .league-expanded .pitch-panel>.football-field,
  body:not(.fpl-theme) .classic-squad-view .pitch-panel>.football-field {
    order:2!important;
    display:block!important;
    position:relative!important;
    width:auto!important;
    min-width:0!important;
    max-width:100%!important;
    height:auto!important;
    max-height:none!important;
    aspect-ratio:1.02/1!important;
    box-sizing:border-box!important;
    margin:7px!important;
    padding:4px!important;
    border-width:2px!important;
    border-radius:8px!important;
  }
  body:not(.fpl-theme) .league-expanded .pitch-panel>.football-field .formation,
  body:not(.fpl-theme) .classic-squad-view .pitch-panel>.football-field .formation {
    position:relative!important;
    z-index:2!important;
    display:grid!important;
    grid-template-rows:repeat(4,minmax(0,1fr))!important;
    gap:3px!important;
    height:100%!important;
    min-height:0!important;
    padding:36px 0 4px!important;
    box-sizing:border-box!important;
  }
  body:not(.fpl-theme) .league-expanded .pitch-panel>.football-field .formation-row,
  body:not(.fpl-theme) .classic-squad-view .pitch-panel>.football-field .formation-row {
    display:flex!important;
    justify-content:space-around!important;
    align-items:center!important;
    gap:3px!important;
    min-width:0!important;
    min-height:0!important;
  }
  body:not(.fpl-theme) .league-expanded .pitch-panel>.football-field .kit-card,
  body:not(.fpl-theme) .classic-squad-view .pitch-panel>.football-field .kit-card {
    flex:0 1 24%!important;
    width:24%!important;
    max-width:24%!important;
    min-width:0!important;
    align-self:center!important;
  }
  body:not(.fpl-theme) .league-expanded .pitch-panel>.football-field .kit-image,
  body:not(.fpl-theme) .classic-squad-view .pitch-panel>.football-field .kit-image {
    height:clamp(34px,9vw,54px)!important;
    width:100%!important;
    max-width:74px!important;
  }
  body:not(.fpl-theme) .league-expanded .pitch-panel .kit-name,
  body:not(.fpl-theme) .classic-squad-view .pitch-panel .kit-name {
    font-size:clamp(8px,2.1vw,11px)!important;
    white-space:nowrap!important;
  }
  body:not(.fpl-theme) .league-expanded .pitch-panel>.bench-area,
  body:not(.fpl-theme) .classic-squad-view .pitch-panel>.bench-area {
    order:3!important;
    width:100%!important;
    padding:8px 8px 11px!important;
    box-sizing:border-box!important;
    background:#e0f4e8!important;
  }
  body:not(.fpl-theme) .league-expanded .pitch-panel .bench-players,
  body:not(.fpl-theme) .classic-squad-view .pitch-panel .bench-players {
    display:grid!important;
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
    gap:4px!important;
    width:100%!important;
    min-width:0!important;
  }
  body:not(.fpl-theme) .league-expanded .pitch-panel .bench-players>.kit-card,
  body:not(.fpl-theme) .classic-squad-view .pitch-panel .bench-players>.kit-card {
    display:flex!important;
    flex-direction:column!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
  }
  body:not(.fpl-theme) .league-expanded .pitch-panel .bench-players .kit-image,
  body:not(.fpl-theme) .classic-squad-view .pitch-panel .bench-players .kit-image {
    height:clamp(34px,9vw,50px)!important;
    width:100%!important;
    max-width:75px!important;
  }
}


/* v0.98.96 — Mobile Classic financials before Chips before Weekly Transfers,
   matching the desktop purple headings and preserving player click targets. */
@media (max-width:1099px), (hover:none), (pointer:coarse) {
  body:not(.fpl-theme) .league-expanded > .desktop-squad-finances,
  body:not(.fpl-theme) .league-expanded > .classic-chip-inventory,
  body:not(.fpl-theme) .league-expanded > .classic-weekly-transfers {
    box-sizing:border-box!important;
    width:100%!important;
    min-width:0!important;
    margin:0 0 12px!important;
    padding:0!important;
    background:#fff!important;
    border:1px solid #ded4e5!important;
    border-radius:12px!important;
    overflow:hidden!important;
  }
  body:not(.fpl-theme) .league-expanded > .desktop-squad-finances > .desktop-extras-heading,
  body:not(.fpl-theme) .league-expanded > .classic-chip-inventory > h4,
  body:not(.fpl-theme) .league-expanded > .classic-weekly-transfers > .weekly-moves-head {
    box-sizing:border-box!important;
    display:flex!important;
    flex-direction:row!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:8px!important;
    min-height:44px!important;
    width:100%!important;
    margin:0!important;
    padding:12px 13px!important;
    background:#37003c!important;
    border:0!important;
    border-radius:0!important;
    color:#fff!important;
    line-height:1.25!important;
  }
  body:not(.fpl-theme) .league-expanded > .desktop-squad-finances > .desktop-extras-heading strong,
  body:not(.fpl-theme) .league-expanded > .classic-chip-inventory > h4 > strong {
    color:#fff!important;
    font-size:13px!important;
    font-weight:850!important;
    letter-spacing:.07em!important;
    white-space:nowrap!important;
  }
  body:not(.fpl-theme) .league-expanded > .desktop-squad-finances > .desktop-extras-heading span,
  body:not(.fpl-theme) .league-expanded > .classic-chip-inventory > h4 > span {
    color:#fff!important;
    font-size:10px!important;
    line-height:1.2!important;
    font-weight:550!important;
    text-transform:none!important;
    letter-spacing:0!important;
    text-align:right!important;
    white-space:nowrap!important;
  }
  body:not(.fpl-theme) .league-expanded > .classic-chip-inventory > .chip-groups,
  body:not(.fpl-theme) .league-expanded > .classic-chip-inventory > p {
    margin:12px!important;
  }
  body:not(.fpl-theme) .league-expanded > .desktop-squad-finances > .desktop-finances-grid {
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:8px!important;
    padding:11px!important;
  }
  body:not(.fpl-theme) .league-expanded > .desktop-squad-finances .desktop-finances-grid > div {
    display:flex!important;
    flex-direction:column!important;
    gap:7px!important;
    min-width:0!important;
    padding:10px 9px!important;
    border:1px solid #e7deeb!important;
    border-radius:9px!important;
    background:#f8f5fa!important;
  }
  body:not(.fpl-theme) .league-expanded > .desktop-squad-finances .desktop-finances-grid small {
    color:#74677a!important;
    font-size:clamp(8px,2.2vw,10px)!important;
    font-weight:750!important;
    line-height:1.25!important;
    overflow-wrap:anywhere!important;
  }
  body:not(.fpl-theme) .league-expanded > .desktop-squad-finances .desktop-finances-grid strong {
    color:#37003c!important;
    font-size:clamp(15px,4vw,20px)!important;
    line-height:1.2!important;
    font-weight:900!important;
    font-variant-numeric:tabular-nums!important;
  }

  /* Give all four pitch lines vertical breathing room. In the 3/4-player
     formations use smaller cards and even spacing, keeping name strips
     and substitution/minutes indicators from touching. */
  body:not(.fpl-theme) .league-expanded .pitch-panel > .football-field,
  body:not(.fpl-theme) .classic-squad-view .pitch-panel > .football-field {
    aspect-ratio:.91/1!important;
  }
  body:not(.fpl-theme) .league-expanded .pitch-panel > .football-field .formation,
  body:not(.fpl-theme) .classic-squad-view .pitch-panel > .football-field .formation {
    gap:7px!important;
    padding:39px 6px 8px!important;
  }
  body:not(.fpl-theme) .league-expanded .pitch-panel > .football-field .formation-row,
  body:not(.fpl-theme) .classic-squad-view .pitch-panel > .football-field .formation-row {
    justify-content:space-evenly!important;
    column-gap:5px!important;
  }
  body:not(.fpl-theme) .league-expanded .pitch-panel > .football-field .formation-row > .kit-card,
  body:not(.fpl-theme) .classic-squad-view .pitch-panel > .football-field .formation-row > .kit-card {
    flex:0 1 23%!important;
    width:23%!important;
    max-width:23%!important;
  }
}


/* v0.98.97: centred mobile Classic squad identity.
   Symmetric side tracks keep the team and manager centred across the whole card,
   while Rivals stays left and the close control remains at the far right.
   Gameweek belongs only in the navigation bar; the used chip is in GW score. */
@media (max-width:1099px), (hover:none), (pointer:coarse) {
  body:not(.fpl-theme) .league-expanded > .classic-squad-topbar {
    display:grid!important;
    grid-template-columns:minmax(84px,1fr) minmax(0,2fr) minmax(84px,1fr)!important;
    grid-template-rows:auto!important;
    align-items:center!important;
    gap:6px!important;
    box-sizing:border-box!important;
    width:100%!important;
    min-height:58px!important;
    padding:7px 4px 10px!important;
    margin:0 0 7px!important;
  }
  body:not(.fpl-theme) .league-expanded > .classic-squad-topbar .rivals-checkbox-label {
    grid-column:1!important;
    grid-row:1!important;
    display:flex!important;
    position:static!important;
    justify-self:start!important;
    align-self:center!important;
    align-items:center!important;
    justify-content:flex-start!important;
    gap:4px!important;
    width:auto!important;
    min-width:0!important;
    max-width:100%!important;
    min-height:42px!important;
    margin:0!important;
    padding:2px 0!important;
    box-sizing:border-box!important;
    white-space:normal!important;
  }
  body:not(.fpl-theme) .league-expanded > .classic-squad-topbar .rivals-checkbox-label input {
    position:static!important;
    width:19px!important;
    height:19px!important;
    min-width:19px!important;
    flex:0 0 19px!important;
    margin:0!important;
  }
  body:not(.fpl-theme) .league-expanded > .classic-squad-topbar .rivals-label-stacked {
    min-width:0!important;
    font-size:9px!important;
    line-height:1.15!important;
  }
  body:not(.fpl-theme) .league-expanded > .classic-squad-topbar .rivals-label-stacked .rivals-line {
    font-size:9px!important;
    line-height:1.15!important;
  }
  body:not(.fpl-theme) .league-expanded > .classic-squad-topbar .squad-financial-header {
    grid-column:2!important;
    grid-row:1!important;
    position:static!important;
    left:auto!important;
    right:auto!important;
    transform:none!important;
    justify-self:stretch!important;
    align-self:center!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    padding:0!important;
    margin:0!important;
    text-align:center!important;
  }
  body:not(.fpl-theme) .league-expanded > .classic-squad-topbar .squad-financial-title {
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    justify-content:center!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    gap:4px!important;
    text-align:center!important;
  }
  body:not(.fpl-theme) .league-expanded > .classic-squad-topbar .squad-gw-title {
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    margin:0!important;
    font-size:clamp(13px,3.7vw,17px)!important;
    font-weight:900!important;
    line-height:1.17!important;
    letter-spacing:-.02em!important;
    text-align:center!important;
    overflow-wrap:anywhere!important;
  }
  body:not(.fpl-theme) .league-expanded > .classic-squad-topbar .squad-manager-name {
    display:block!important;
    width:100%!important;
    min-width:0!important;
    margin:0!important;
    font-size:clamp(10px,2.6vw,12px)!important;
    line-height:1.18!important;
    text-align:center!important;
    overflow-wrap:anywhere!important;
  }
  body:not(.fpl-theme) .league-expanded > .classic-squad-topbar .league-squad-close {
    grid-column:3!important;
    grid-row:1!important;
    position:static!important;
    justify-self:end!important;
    align-self:center!important;
    width:40px!important;
    height:40px!important;
    min-width:40px!important;
    min-height:40px!important;
    margin:0!important;
    padding:0!important;
  }
}

/* Keep the squad-value deadline label together; show its amount beneath it on narrow screens. */
@media(max-width:620px){
 .classic-league-table .table-financial-line .table-squad-value-label{white-space:nowrap}
 .classic-league-table .table-financial-line .table-squad-value>b{display:block}
}
