:root{color-scheme:dark;--bg:#07111c;--card:#101f2d;--text:#f5f8fc;--muted:#91a4b8;--accent:#56e0b2;--blue:#4da3ff;--bad:#ff7481;--line:#263b4f}*{box-sizing:border-box}body{margin:0;background:#07111c;color:var(--text);font:15px/1.4 system-ui,sans-serif}button,input,select{font:inherit}button{border:0;border-radius:12px;padding:11px 14px;background:var(--accent);color:#06131b;font-weight:850}.secondary{background:#1a3044;color:var(--text)}.eyebrow{margin:0 0 4px;font-size:11px;letter-spacing:.14em;color:var(--accent);font-weight:800}h1,h2,h3,p{margin-top:0}header{position:sticky;top:0;z-index:8;padding:14px 16px;background:#08131fee;border-bottom:1px solid var(--line)}header h1{font-size:18px;margin:0}main{padding:14px;max-width:600px;margin:auto}.summary{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:12px}.stat,.card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:12px}.card{border-radius:22px;padding:15px}.stat b{display:block;font-size:18px}.stat span,.hint{color:var(--muted);font-size:11px}.gw-nav{display:flex;gap:8px;overflow:auto;padding-bottom:12px}.gw-nav button{flex:none;background:#132638;color:var(--muted)}.gw-nav button.active{background:var(--blue);color:#fff}.section-head,.score-strip,.consequence-row{display:flex;justify-content:space-between;align-items:center;gap:10px}.score-strip,.bench,.menu-fixture,.budget-box,.consequence{background:#091522;border-radius:14px;padding:10px;margin:10px 0}.pitch{background:linear-gradient(#176b4a,#12583e);border-radius:20px;padding:14px 0;display:grid;gap:12px;min-height:430px}.line{display:flex;justify-content:space-around;gap:1px}.player{width:min(19.6%,68px);min-width:0;padding:0;background:transparent;color:#fff;position:relative}.shirt{width:40px;height:44px;margin:auto;border-radius:12px;background:#ddd;color:#07111c;display:grid;place-items:center;font-size:10px;font-weight:900}.player strong,.player small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:9.5px}.fixture{color:#fff;font-weight:850}.badge{position:absolute;right:4px;top:-5px;background:#ffe36b;color:#111;border-radius:50%;width:19px;height:19px;font-size:10px;display:grid;place-items:center}.bench{display:grid;grid-template-columns:repeat(4,1fr);gap:2px}.bench .player{width:100%}.bench-label{font-size:11px;color:var(--muted);font-weight:800;margin:12px 0 0}dialog{width:min(92%,500px);border:1px solid var(--line);border-radius:22px;background:var(--card);color:var(--text);padding:18px}dialog::backdrop{background:#000b}dialog form{display:grid;gap:10px}label{display:grid;gap:6px}select{width:100%;background:#091522;color:#fff;border:1px solid var(--line);border-radius:12px;padding:13px}.budget-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.budget-grid span{font-size:10px;color:var(--muted)}.budget-grid b{display:block}.consequence{display:grid;gap:7px}.over{color:var(--bad)}.under{color:var(--accent)}.alert{padding:10px;border-radius:12px;background:#34212a;color:#ffc1c7}.transfer-action{background:var(--blue);color:#fff}@media(max-width:370px){.shirt{width:35px;height:39px}.player strong,.player small{font-size:8.7px}}

.player.changed .shirt{outline:3px solid var(--accent)}.transfer-badge{position:absolute;left:2px;top:-5px;background:var(--accent);color:#07111c;border-radius:8px;padding:2px 5px;font-size:8px;font-weight:900}.transfer-note{color:var(--accent)!important;font-weight:850}input{width:100%;background:#091522;color:#fff;border:1px solid var(--line);border-radius:12px;padding:13px}

.planner-controls{display:grid;grid-template-columns:110px 1fr;gap:8px;align-items:end;margin-bottom:10px}.planner-controls label{margin:0;font-size:11px;color:var(--muted);font-weight:800}.planner-controls input{margin-top:5px}.hit-status{min-height:49px;border:1px solid var(--line);background:var(--card);border-radius:14px;padding:9px 11px;display:flex;flex-direction:column;justify-content:center}.hit-status b{font-size:15px}.hit-status small{color:var(--muted)}.hit-status.hit b{color:var(--bad)}.hit-status.free b{color:var(--accent)}.plan-summary{margin-bottom:12px}.plan-overview{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:11px}.plan-overview-head{display:flex;justify-content:space-between;gap:8px;margin-bottom:7px}.plan-overview-head small{color:var(--muted)}.plan-transfer{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;padding:7px 0;border-top:1px solid var(--line)}.plan-transfer span{font-size:12px}.undo-transfer{padding:6px 9px;background:#1a3044;color:#fff}.empty-plan{display:none}

.bottom-nav{position:fixed;bottom:0;left:0;right:0;display:grid;grid-template-columns:1fr 1fr;padding:8px 14px calc(8px + env(safe-area-inset-bottom));background:#08131f;border-top:1px solid var(--line);z-index:20}.bottom-nav button{background:transparent;color:var(--muted)}.bottom-nav button.active{color:var(--accent)}main{padding-bottom:90px}.review-view{max-width:600px;margin:auto}.review-view>.section-head{margin-bottom:12px}.review-view select{width:auto}.review-totals{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-bottom:12px}.review-total{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:10px}.review-total b{display:block;font-size:18px}.review-total span{font-size:10px;color:var(--muted)}.review-players{display:grid;gap:9px}.review-player{background:var(--card);border:1px solid var(--line);border-radius:17px;overflow:hidden}.review-player summary{list-style:none;display:grid;grid-template-columns:1fr auto;gap:10px;padding:12px}.review-player summary::-webkit-details-marker{display:none}.review-player-name strong,.review-player-name small{display:block}.review-player-name small{color:var(--muted)}.review-points{text-align:right}.review-points b{display:block;font-size:20px}.review-points span{font-size:10px;color:var(--muted)}.review-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;padding:0 12px 12px}.review-metric{background:#091522;border-radius:10px;padding:7px}.review-metric b,.review-metric span{display:block}.review-metric span{font-size:9px;color:var(--muted)}.points-breakdown{border-top:1px solid var(--line);padding:11px 12px}.points-row{display:flex;justify-content:space-between;gap:10px;padding:4px 0;font-size:12px}.review-note{color:var(--muted);font-size:11px;margin:0 0 10px}

.review-xpts{color:var(--accent);font-weight:900}.review-total.wide{grid-column:span 1}.review-points small{display:block;color:var(--accent);font-size:10px;font-weight:800}


/* MVP12 light white/burgundy/black theme */
:root{color-scheme:light;--bg:#F7F5F2;--card:#FFFFFF;--text:#151515;--muted:#6E6865;--accent:#781D32;--blue:#781D32;--bad:#B42332;--line:#E4DEDA}
body{background:#F7F5F2;color:#151515}header{background:rgba(255,255,255,.97);border-bottom-color:#E4DEDA;box-shadow:0 1px 9px #35151d0d}.eyebrow{color:#781D32}.stat,.card,.hit-status,.plan-overview,.review-player,.review-total{background:#fff;border-color:#E4DEDA;box-shadow:0 2px 9px #35151d0b}.secondary,.undo-transfer{background:#EFEAE7;color:#151515}button{background:#781D32;color:#fff}.gw-nav button{background:#EEE9E6;color:#5D5653}.gw-nav button.active{background:#781D32;color:#fff}input,select{background:#fff;color:#151515;border-color:#D9D1CD}.score-strip,.bench,.menu-fixture,.budget-box,.consequence,.review-metric{background:#F4F0ED;color:#151515}.pitch{background:#F1ECE8;border:1px solid #E1D8D3;min-height:430px}.bottom-nav{background:#fff;border-top-color:#E4DEDA;box-shadow:0 -2px 10px #35151d0d}.bottom-nav button{color:#6E6865}.bottom-nav button.active{color:#781D32}dialog{background:#fff;color:#151515;border-color:#E4DEDA}dialog::backdrop{background:#17111370}.alert{background:#F9E7EA;color:#8A1C2B}.transfer-action{background:#781D32}.review-xpts{color:#781D32}
/* Fixture cards with team shirt-colour accents */
.line{align-items:flex-start;gap:2px}.player-card-v12{width:min(19.2%,70px);min-width:0;padding:0 1px;background:transparent;color:#151515;display:flex;flex-direction:column;gap:3px;align-items:stretch;position:relative;overflow:visible}.player-card-name{display:block!important;width:100%;min-height:13px;margin:0!important;font-size:10px!important;line-height:1.15;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#151515;font-weight:850}.player-card-fixtures{position:relative;display:grid;grid-template-rows:repeat(3,1fr);width:100%;height:75px;border:1px solid #DDD5D1;border-top:4px solid var(--club-primary);border-radius:10px;overflow:hidden;background:#fff;box-shadow:0 2px 7px #23181a14}.player-card-fixtures:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:linear-gradient(to bottom,var(--club-primary) 0 50%,var(--club-secondary) 50% 100%);z-index:2}.player-card-fixture{display:grid;grid-template-columns:20px minmax(0,1fr);align-items:center;min-height:24px;padding:2px 2px 2px 6px;border-bottom:1px solid #ECE6E2;text-align:left;background:#fff}.player-card-fixture:nth-child(2){background:#FBF9F8}.player-card-fixture:last-child{border-bottom:0}.player-card-fixture small{display:block!important;font-size:6px!important;line-height:1;color:#938984}.player-card-fixture b{font-size:9px;line-height:1.05;color:#151515;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.player-card-fixture.blank b{color:#AAA19D}.player-card-projection{display:flex;justify-content:center;align-items:baseline;gap:3px;white-space:nowrap}.player-card-projection b{font-size:9px;color:#781D32}.player-card-projection small{display:block!important;font-size:8px!important;color:#6E6865}.player-card-v12 .badge{top:12px;right:-2px;z-index:3;background:#781D32;color:#fff;box-shadow:0 0 0 2px #fff}.player-card-v12 .transfer-badge{top:12px;left:-2px;z-index:3;background:#151515;color:#fff}.player-card-v12 .transfer-note{font-size:7px!important;text-align:center;color:#781D32!important}.player.changed .player-card-fixtures{box-shadow:0 0 0 2px #781D32,0 2px 7px #23181a14}.bench .player-card-v12{width:100%}@media(max-width:370px){.player-card-v12{width:19.3%}.player-card-name{font-size:9px!important}.player-card-fixtures{height:69px}.player-card-fixture{grid-template-columns:17px minmax(0,1fr);min-height:22px;padding-left:5px}.player-card-fixture small{font-size:5.5px!important}.player-card-fixture b{font-size:8px}.player-card-projection b{font-size:8px}.player-card-projection small{font-size:7px!important}}


/* MVP13 interaction, alignment and performance */
.bottom-nav{grid-template-columns:repeat(3,1fr)}
.player-card-fixture{grid-template-columns:minmax(0,1fr);padding-left:8px!important;text-align:center}
.player-card-fixture b{text-align:center}
.line:has(.player-card-v12:nth-child(5)){display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:3px;padding:0 3px}
.line:has(.player-card-v12:nth-child(5)) .player-card-v12{width:100%;max-width:none}
.switch-action{background:#151515;color:#fff}.switch-prompt{padding:10px 12px;border-radius:12px;background:#151515;color:#fff;margin-bottom:10px;font-weight:800}
.performance-view{max-width:600px;margin:auto}.performance-summary{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px}.performance-stat,.performance-chart-card{background:#fff;border:1px solid var(--line);border-radius:17px;padding:12px;box-shadow:0 2px 9px #35151d0b}.performance-stat b,.performance-stat span{display:block}.performance-stat b{font-size:20px;color:#781D32}.performance-stat span{font-size:10px;color:var(--muted)}.performance-chart-card{margin-bottom:12px}.chart-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.chart-head small{color:var(--muted)}.rank-chart svg{width:100%;height:auto;display:block}.rank-chart .axis-text{font-size:11px;fill:#6E6865}.score-bars{height:145px;display:flex;align-items:flex-end;gap:5px;overflow-x:auto;padding:6px 2px}.score-week{min-width:30px;text-align:center}.bar-pair{height:120px;display:flex;align-items:flex-end;justify-content:center;gap:2px}.bar{display:block;width:9px;border-radius:4px 4px 0 0}.bar.own{background:#781D32}.bar.avg{background:#151515}.score-week small{font-size:8px;color:var(--muted)}.chart-legend{display:flex;gap:15px;font-size:10px;color:var(--muted)}.chart-legend i{display:inline-block;width:9px;height:9px;margin-right:4px;border-radius:2px}.own-key{background:#781D32}.avg-key{background:#151515}.performance-rows{display:grid;gap:7px}.performance-row{display:grid;grid-template-columns:45px 55px 1fr auto;align-items:center;gap:6px;background:#fff;border:1px solid var(--line);border-radius:13px;padding:10px}.performance-row .above{color:#397047}.performance-row .below{color:#B42332}.performance-row small{color:var(--muted)}.empty-performance{padding:15px;color:var(--muted)}

.model-breakdown{background:#F7F3F1;border:1px solid var(--line);border-radius:14px;padding:11px}.model-head{display:grid;grid-template-columns:1fr 1fr;gap:7px}.model-head div{background:#fff;border-radius:11px;padding:9px;border:1px solid var(--line)}.model-head b,.model-head span{display:block}.model-head b{font-size:20px;color:#781D32}.model-head span{font-size:10px;color:var(--muted)}.model-scenarios{display:flex;justify-content:space-between;font-size:11px;padding:10px 2px}.model-components{display:grid;gap:5px}.model-components div{display:flex;justify-content:space-between;border-top:1px solid #E4DEDA;padding-top:5px}.model-components span,.model-rates{color:var(--muted)}.model-rates{display:grid;gap:3px;margin-top:10px;padding-top:8px;border-top:1px solid #D8CFCA;font-size:10px}.model-rates span{display:flex;justify-content:space-between}.model-rates b{color:#151515}


/* MVP17 FDR colours on fixture rows: 1 easiest, 5 hardest */
.player-card-fixture.fdr-1{background:#DDF3E5!important;border-left:4px solid #258A4B}
.player-card-fixture.fdr-2{background:#ECF6E8!important;border-left:4px solid #78A94B}
.player-card-fixture.fdr-3{background:#F4F0ED!important;border-left:4px solid #A79D96}
.player-card-fixture.fdr-4{background:#FBE8E7!important;border-left:4px solid #C45A5A}
.player-card-fixture.fdr-5{background:#F4D9DD!important;border-left:4px solid #A51F38}
.player-card-fixture.fdr-1 b,.player-card-fixture.fdr-2 b,.player-card-fixture.fdr-3 b,.player-card-fixture.fdr-4 b,.player-card-fixture.fdr-5 b{color:#151515}

/* MVP26 multi-GW and calibration */
.bottom-nav{grid-template-columns:repeat(4,1fr)}.calibration-view{max-width:600px;margin:auto}.calibration-bands{display:grid;gap:7px;margin-bottom:12px}.calibration-band{display:grid;grid-template-columns:1fr repeat(3,auto);gap:10px;background:#fff;border:1px solid var(--line);border-radius:13px;padding:10px}.calibration-band small{color:var(--muted)}.multi-gw-list{display:grid;gap:5px;margin:8px 0}.multi-gw-row{display:grid;grid-template-columns:42px 1fr auto auto;gap:7px;padding:6px;border-top:1px solid var(--line);font-size:11px}.multi-gw-row small{color:var(--muted)}.player-card-projection{flex-wrap:wrap}.player-card-projection .primary-3gw{font-size:10px}.snapshot-note{font-size:11px;color:var(--muted)}

.freeze-status{background:#fff;border:1px solid var(--line);border-radius:13px;padding:10px;margin-bottom:10px}.freeze-status b,.freeze-status span{display:block}.freeze-status b{color:#781D32}.freeze-status span{font-size:11px;color:var(--muted)}

/* MVP29 final Gameweek review refresh */
.review-actions{display:flex;align-items:center;gap:7px}.review-actions select{width:auto}.review-actions button{padding:10px 12px}.review-status{min-height:20px;margin:-4px 0 10px;color:var(--muted);font-size:11px}.review-status b{color:#781D32}.review-final{color:#397047!important;font-weight:850}
