@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@500;600;700;800;900&family=Barlow:wght@400;500;600;700;800&display=swap');
:root{--ink:#14232b;--cream:#f6f1df;--coral:#ff704d;--blue:#6cc9e0;--muted:#a8b6b7;--font:'Barlow',Arial,sans-serif;--display:'Barlow Condensed','Arial Narrow',Impact,sans-serif}
*{box-sizing:border-box}body{margin:0;background:#10252b;color:var(--cream);font-family:var(--font);overflow:hidden}button,select{font:inherit}button,a,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:focus-visible,a:focus-visible,select:focus-visible{outline:3px solid #ffcc68;outline-offset:5px}button{border:0}button:hover{filter:brightness(1.1)}[hidden]{display:none!important}#app{height:100dvh;min-height:540px;position:relative;overflow:hidden}#pitch{position:absolute;inset:0;width:100%;height:100%;image-rendering:pixelated}.masthead{height:80px;position:absolute;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:0 44px;z-index:5;border-bottom:1px solid #eff2dd26;background:linear-gradient(#13252aeb,#13252a44)}.brand{font-family:var(--display);font-size:29px;font-weight:800;letter-spacing:-1px;color:var(--cream);text-decoration:none}.brand>span:last-child{color:var(--coral);margin-left:3px}.brand-ball{font-family:Arial;font-size:30px;display:inline-block;color:var(--coral);margin-right:8px;transform:rotate(-25deg)}.edition{display:flex;align-items:center;gap:9px;font-size:10px;letter-spacing:2px;font-weight:700}.edition b{font-size:9px;opacity:.4;font-weight:500;margin-left:22px}.live-dot{width:6px;height:6px;background:var(--coral);border-radius:50%;box-shadow:0 0 14px #ff704d}.small-button{background:#14252baa;border:1px solid #cdd9cd4a;color:var(--cream);padding:10px 14px;font-size:10px;font-weight:700;letter-spacing:1.3px}.title-screen{position:absolute;inset:80px 0 28px;background:linear-gradient(90deg,#11282bf7 0%,#11282bea 24%,#11282b99 46%,#11282b08 76%);padding:50px 6vw}.title-copy{position:relative;z-index:2;width:48%;max-width:580px}.eyebrow{display:flex;align-items:center;gap:10px;font-size:10px;font-weight:700;letter-spacing:2.6px;margin:0 0 18px;color:var(--coral)}.eyebrow>span{width:24px;height:2px;background:var(--coral)}h1{font-family:var(--display);font-size:clamp(68px,7.6vw,120px);font-weight:800;letter-spacing:-2px;line-height:.89;margin:0 0 22px}h1 em{font-style:normal;color:var(--coral)}.intro{font-size:17px;line-height:1.55;color:#e2e7d4b8;margin:0 0 28px}.fixture{display:flex;align-items:center;gap:32px;padding:20px 0;border-top:1px solid #d6e1cd30;border-bottom:1px solid #d6e1cd30;width:390px;max-width:100%}.fixture>div{position:relative;min-width:132px;padding-right:42px}.fixture small{font-size:9px;letter-spacing:2px;color:var(--muted);display:block;margin-bottom:6px}.fixture strong{font-family:var(--display);font-size:26px;font-weight:700;line-height:.95}.team-tag{position:absolute;right:0;top:24px;width:33px;height:36px;clip-path:polygon(0 0,100% 0,100% 78%,50% 100%,0 78%);display:grid;place-items:center;color:var(--ink);font-size:10px;font-weight:800}.coral{background:var(--coral)}.blue{background:var(--blue)}.versus{font-size:11px;color:#b4c6bc86}.start-row{display:flex;gap:12px;margin-top:25px}.primary{background:var(--coral);color:var(--ink);padding:18px 24px;min-width:240px;text-align:left;font-weight:800;font-size:12px;letter-spacing:1.4px;display:flex;align-items:center;justify-content:space-between;gap:24px;box-shadow:4px 4px 0 #080f153b}.primary span{font-size:21px;line-height:16px}.duration{border:1px solid #bdc9bd40;padding:8px 12px;display:flex;flex-direction:column;justify-content:center;gap:3px}.duration>span{font-size:8px;letter-spacing:1.8px;color:var(--muted)}select{background:transparent;color:var(--cream);border:0;font-size:12px;font-weight:700;cursor:pointer}select option{background:var(--ink)}.text-button{background:transparent;color:#dce3d0b5;font-size:10px;font-weight:600;letter-spacing:1.2px;padding:17px 0}.text-button span{margin-left:14px}.hero-players{position:absolute;left:51%;right:4%;top:11%;bottom:12%}.hero-players img{image-rendering:pixelated;object-fit:contain;position:absolute;filter:drop-shadow(6px 8px 0 #061b2366);z-index:2}.hero-main{width:48%;height:65%;left:23%;bottom:18%}.hero-small{width:31%;height:44%;bottom:24%;opacity:.85}.hero-small.left{left:0;transform:rotate(-4deg)}.hero-small.right{right:0;transform:rotate(3deg)}.hero-ground{position:absolute;left:10%;right:6%;height:10%;bottom:20%;background:#081d2970;border-radius:50%;filter:blur(6px)}.hero-caption{position:absolute;top:5%;right:10%;font-size:9px;letter-spacing:2px;color:#cfe1d699}.hero-label{position:absolute;bottom:0;left:31%;display:flex;align-items:center;gap:16px;border-left:2px solid var(--coral);padding:10px 16px;background:#10262bba}.hero-label>b{font-family:var(--display);font-size:48px;color:var(--coral)}.hero-label>span{font-family:var(--display);font-weight:700;font-size:28px;line-height:1}.hero-label small{display:block;font-family:var(--font);font-size:7px;color:var(--muted);margin-top:7px;letter-spacing:1.4px}.title-footer{position:absolute;bottom:25px;left:6vw;right:6vw;display:flex;justify-content:space-between;font-size:9px;font-weight:600;letter-spacing:2px;color:#d5dfc88c}.credits{position:absolute;bottom:0;left:0;right:0;text-align:center;font-size:8px;color:#b3c5ba70;letter-spacing:.4px;background:#11242c;padding:8px;z-index:5}#hud{position:absolute;inset:0;pointer-events:none}#hud button{pointer-events:auto}.playing .masthead{height:61px;padding:0 28px}.playing .brand{font-size:24px}.playing .edition{display:none}.scorebug{position:absolute;top:77px;left:50%;transform:translateX(-50%);display:flex;box-shadow:0 5px 20px #0004;height:69px;min-width:395px}.score-team{display:flex;align-items:center;gap:15px;background:var(--cream);color:var(--ink);padding:10px 18px;border-top:4px solid var(--coral)}.score-team.away{border-color:var(--blue)}.score-team>span:not(.possession){font-size:24px;font-family:var(--display);font-weight:800;line-height:.9}.score-team small{display:block;font-family:var(--font);font-size:8px;letter-spacing:1px;font-weight:600;margin-top:5px}.score-team b{font-size:39px;font-family:var(--display);min-width:30px;text-align:center}.possession{font-size:9px;color:var(--coral)}.away .possession{color:#237991}.match-clock{background:var(--ink);display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:94px;border-top:4px solid var(--ink)}.match-clock>span{font-size:8px;letter-spacing:1.8px;color:#c4cfbf}.match-clock strong{font-family:var(--display);font-size:28px;letter-spacing:1px}.setbar{position:absolute;top:146px;left:50%;transform:translateX(-50%);background:#14252bed;display:flex;align-items:center;justify-content:center;gap:17px;padding:10px 15px;white-space:nowrap;font-size:8px;letter-spacing:1.2px}.tackle-dots{display:flex;gap:5px}.tackle-dots i{width:6px;height:6px;border:1px solid #778e87;border-radius:50%}.tackle-dots i.filled{background:var(--coral);border-color:var(--coral)}.tackle-dots i.current{background:var(--cream);border-color:var(--cream)}.pause-button{position:absolute;right:28px;top:77px}#announcement{position:absolute;left:50%;top:193px;transform:translateX(-50%);font-family:var(--display);font-weight:700;letter-spacing:2px;font-size:22px;text-align:center;padding:9px 20px;background:#13252bc9;color:var(--cream);white-space:nowrap;border-left:3px solid var(--coral);transition:opacity .15s}#announcement:empty{opacity:0}.player-card{position:absolute;bottom:100px;left:32px;display:flex;align-items:center;gap:16px;background:#14252bee;border-top:3px solid var(--coral);padding:16px 20px 16px 10px;min-width:285px}.player-card img{width:72px;height:65px;object-fit:contain;image-rendering:pixelated}.player-card small{display:block;font-size:8px;letter-spacing:1.3px;color:var(--coral);margin-bottom:4px}.player-card strong{font-family:var(--display);font-size:27px;line-height:1}.player-card>div>span{font-size:7px;letter-spacing:1px;color:#a7bab0}.player-card>b{font-family:var(--display);font-size:48px;color:#ffffff16;position:absolute;right:12px;top:8px}.stamina-track{height:3px;background:#405454;margin:9px 0 4px;width:140px}.stamina-track i{height:3px;background:#bdde8d;display:block}.mini-wrap{position:absolute;bottom:100px;right:32px;border:1px solid #ccdbc14d;padding:6px;background:#122d2ad9}.mini-wrap canvas{width:105px;height:139px;display:block}.mini-wrap>span{font-size:7px;letter-spacing:2px;display:block;text-align:center;padding:7px 0 3px;color:#b1c5b2}.controls{position:absolute;bottom:42px;left:50%;transform:translateX(-50%);display:flex;align-items:center;justify-content:center;gap:22px;background:#14252bf0;border:1px solid #a0b7a92b;padding:14px 22px;white-space:nowrap}.controls>span{display:flex;align-items:center;gap:5px;font-size:8px;color:#b0c2b7;letter-spacing:.7px}.controls b{font-weight:400}kbd{font-family:var(--font);font-size:9px;font-weight:700;color:var(--cream);border:1px solid #a5baab5c;background:#dce5cf0a;padding:4px 6px;box-shadow:0 2px 0 #0003}.ready-hint{position:absolute;bottom:120px;left:50%;transform:translateX(-50%);font-size:10px;letter-spacing:1.2px;background:#14252bc9;padding:13px 18px}.modal-screen{position:absolute;inset:61px 0 27px;z-index:8;display:flex;align-items:center;justify-content:center;background:#0b202ad9;backdrop-filter:blur(7px);padding:30px}.modal{background:var(--cream);color:var(--ink);padding:40px;max-width:680px;max-height:100%;overflow-y:auto;box-shadow:12px 12px 0 #0003;position:relative;border-top:5px solid var(--coral)}h2{font-family:var(--display);font-size:48px;font-weight:800;line-height:1;letter-spacing:-.5px;margin:0 0 12px}.modal p:not(.eyebrow){font-size:13px;color:#5c706e;line-height:1.6}.help-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px 24px;margin:24px 0 32px;font-size:11px}.help-grid kbd{color:var(--ink);border-color:#a4b2a5;display:inline-block;min-width:52px;margin-right:6px}.modal .text-button{color:#596b65;display:block}.modal .primary{width:100%}.close-button{position:absolute;right:22px;top:16px;background:transparent;color:var(--ink);font-size:32px}.squad-modal{max-width:880px;width:100%}#squad-list{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:24px}.squad-item{display:flex;align-items:center;gap:10px;padding:12px 8px;background:#e8e7d6}.squad-item img{width:48px;height:44px;object-fit:contain;image-rendering:pixelated}.squad-item strong{font-size:13px;display:block}.squad-item small{font-size:9px;color:#6b7a6e;display:block;margin:3px 0}.squad-item .stats{font-size:8px;color:#64796d}.squad-item>b{font-family:var(--display);font-size:23px;opacity:.3}.final-score{display:flex;align-items:center;justify-content:space-between;gap:25px;padding:26px 0;border-block:1px solid #c8cdba}.final-score span{font-family:var(--display);font-weight:700;font-size:21px;max-width:70px}.final-score b{font-family:var(--display);font-size:64px;white-space:nowrap}#result-stats{margin:25px 0}.stat-row{display:flex;justify-content:space-between;padding:8px 0;font-size:12px}.stat-row span{color:#718070;text-transform:uppercase;letter-spacing:1px;font-size:9px}#conversion{position:absolute;top:40%;left:50%;transform:translate(-50%,-20%);background:#14252bf5;padding:32px;width:390px;text-align:center;border-top:3px solid var(--coral)}#conversion>span{font-size:9px;color:var(--coral);letter-spacing:2px}#conversion h2{font-size:39px;margin:10px 0 22px}#conversion p{font-size:11px;color:#b2c4b8}.meter{height:22px;background:#3c5153;position:relative}.meter i{position:absolute;top:0;bottom:0;background:#e8b957}.meter b{position:absolute;top:-5px;bottom:-5px;width:4px;background:#fff5df}#kick-charge{position:absolute;bottom:125px;left:50%;transform:translateX(-50%);background:#14252bea;padding:15px;width:200px;text-align:center}#kick-charge>span{font-size:9px;letter-spacing:2px}#kick-charge>div{height:7px;background:#52685d;margin:10px 0}#kick-fill{display:block;height:100%;background:var(--coral)}#kick-charge small{font-size:9px;color:var(--muted)}
@media(min-height:900px){.title-screen{padding-top:8vh}.intro{margin-bottom:40px}.fixture{padding-block:26px}.start-row{margin-top:30px}}@media(max-height:760px){.title-screen{padding-top:27px}h1{font-size:76px}.intro{font-size:14px;margin-bottom:17px}.fixture{padding:14px 0}.start-row{margin-top:17px}.title-footer{bottom:15px}.hero-players{top:6%;bottom:14%}.player-card{bottom:91px}.mini-wrap{bottom:91px}.modal{padding:25px}.help-grid{margin:20px 0;gap:12px}}
@media(max-width:900px){.masthead{padding:0 22px}.edition{display:none}.title-copy{width:57%}.hero-players{left:55%;right:1%}.hero-small{display:none}.hero-main{width:90%;left:0}.hero-label{left:4%;padding:10px}.hero-caption{display:none}h1{font-size:78px}.title-screen{padding-left:5vw}.controls{gap:10px;padding:12px}.controls>span{font-size:7px}.player-card{transform:scale(.82);transform-origin:bottom left;left:18px}.mini-wrap{right:18px}.pause-button{font-size:8px}.ready-hint{bottom:110px;font-size:8px}.squad-item .stats{display:none}}
@media(max-width:600px){#app{min-height:580px}.title-copy{width:100%;max-width:380px}.title-screen{padding-top:30px;background:linear-gradient(90deg,#11282bf5,#11282bb0)}.hero-players{display:none}h1{font-size:75px}.title-footer>span:last-child{display:none}.scorebug{min-width:320px;top:75px;height:60px}.score-team{padding:8px 12px;gap:10px}.score-team b{font-size:32px}.match-clock{min-width:75px}.setbar{top:135px;gap:10px;font-size:7px}.pause-button{top:180px;right:14px}#announcement{top:225px;font-size:16px;max-width:96%;white-space:normal}.mini-wrap{display:none}.controls{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;bottom:35px;width:95%;white-space:normal}.player-card{bottom:115px;left:12px}.ready-hint{bottom:220px}.help-grid{grid-template-columns:1fr;font-size:10px;gap:8px}h2{font-size:37px}.modal-screen{padding:18px}.modal{padding:24px}#squad-list{grid-template-columns:1fr 1fr}.squad-item{padding:8px 4px;gap:5px}.squad-item img{width:36px}.squad-item strong{font-size:11px}.squad-item>b{display:none}.final-score{gap:12px}.final-score b{font-size:48px}.credits{font-size:6px}#conversion{width:310px}}

/* Keep the centre of the field clear: compact broadcast HUD and contextual receiver help. */
.playing .scorebug{left:24px;top:74px;transform:none;min-width:0;height:54px}
.playing .score-team{padding:7px 12px;gap:10px}.playing .score-team b{font-size:31px;min-width:24px}.playing .score-team>span:not(.possession){font-size:20px}.playing .match-clock{min-width:78px}.playing .match-clock strong{font-size:24px}
.playing .setbar{left:24px;top:128px;transform:none;padding:8px 12px;gap:11px;font-size:7px}
.camera-button{position:absolute;right:125px;top:77px}.playing #announcement{top:173px;font-size:18px;padding:7px 14px;background:#13252bd9}
.playing .player-card{bottom:112px;padding:10px 14px 10px 8px;min-width:240px;gap:10px}.playing .player-card img{width:48px;height:48px}.playing .player-card strong{font-size:24px}.playing .player-card>b{font-size:36px}
.playing .mini-wrap{bottom:112px}.playing .controls{bottom:41px;padding:11px 18px}.playing .ready-hint{bottom:151px;background:#14252bf2;font-size:10px}
#receiver-hint{position:absolute;bottom:89px;left:50%;transform:translateX(-50%);font-size:9px;font-weight:600;letter-spacing:1px;background:#14252bde;color:#ebd6a6;padding:8px 13px;white-space:nowrap}
.playing #pitch{cursor:crosshair}
@media(max-width:900px){.playing .scorebug{left:15px}.playing .setbar{left:15px}.playing .ready-hint{font-size:8px}.camera-button{right:105px;font-size:8px}#receiver-hint{font-size:7px;bottom:84px}.playing .player-card{bottom:110px}}
@media(max-width:600px){.playing .scorebug{left:12px;top:70px}.playing .setbar{left:12px;top:124px}.camera-button{right:14px;top:157px}.playing .pause-button{top:193px}.playing #announcement{top:235px;font-size:14px}.playing .controls{bottom:33px}.playing .player-card{bottom:125px}.playing .ready-hint{bottom:220px}#receiver-hint{bottom:99px;font-size:6px;letter-spacing:.5px}}
.playing .player-card{top:169px;bottom:auto!important;left:24px;min-width:226px;padding:9px 12px 9px 8px}
@media(max-width:900px){.playing .player-card{left:15px;top:163px;transform-origin:top left}}
@media(max-width:600px){.playing .player-card{top:161px;left:12px;min-width:205px;transform:scale(.7)}}

#context-controls{display:contents}#tactic-list{position:absolute;bottom:74px;left:50%;transform:translateX(-50%);color:#b5c4b8;font:600 10px monospace;letter-spacing:.6px;white-space:nowrap;background:#11252bd9;padding:6px 10px;border-radius:3px;pointer-events:none}

.playing #receiver-hint{bottom:117px}.playing #tactic-list{bottom:88px}.playing #context-controls>span{display:flex;align-items:center;gap:5px;font-size:8px;color:#b0c2b7;letter-spacing:.7px}@media(max-width:900px){.playing #context-controls>span{font-size:7px}.playing #tactic-list{font-size:8px}}@media(max-width:600px){.playing #tactic-list{bottom:111px;font-size:7px;letter-spacing:0}.playing #receiver-hint{bottom:137px}.playing .ready-hint{bottom:221px}}

/* A compact, collapsible coaching board sits off the main passing lanes. */
.playbook{position:absolute;right:24px;bottom:112px;width:226px;background:#12262bf2;border:1px solid #bdcdb53d;pointer-events:auto;box-shadow:0 4px 16px #0002}
.playbook-heading{display:flex;align-items:center;gap:10px;width:100%;padding:9px 12px;background:#20363a;color:#f6f1df;font-size:10px;letter-spacing:1.3px;font-weight:700;text-align:left}
#playbook-mode{margin-left:auto;color:#ffe193;font-size:8px}.playbook-title{display:flex;align-items:center;justify-content:space-between;padding:8px 10px 0}.playbook-title strong{font:700 19px var(--display);letter-spacing:.6px}
#play-auto{padding:5px 7px;background:transparent;border:1px solid #b8c9b54d;color:#b8c9b5;font-size:9px;font-weight:700}
#play-auto[aria-pressed=true]{background:#ffe193;color:#14232b;border-color:#ffe193}
#play-diagram{padding:0 9px}#play-diagram svg{display:block;width:100%;height:105px}
#play-legend{font-size:7px;letter-spacing:.4px;color:#d4d8b9;padding:0 10px}
#play-description{font-size:10px;line-height:1.35;color:#b9cbbd;margin:6px 10px;min-height:27px}
.play-choices{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:0 9px 9px}.play-choices button{font-size:9px;text-align:left;padding:6px;background:#253b3d;color:#bfcebf;border:1px solid transparent}
.play-options{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px 9px 8px}
.play-options button{padding:7px 4px;background:#614b36;color:#fff2d0;border:1px solid #d9ae71;font-size:9px;font-weight:800;letter-spacing:.5px}
.play-options button:disabled{background:#26383a;color:#879d93;border-color:#60786e;cursor:default}
.play-choices button[aria-pressed=true]{border-color:#ff825e;color:#fff0cf;background:#493e33}
.playing .mini-wrap{top:132px;bottom:auto;right:24px}
@media(max-width:1100px){.playbook{width:207px;right:18px}.playing .mini-wrap{right:18px}#play-diagram svg{height:92px}#play-description{font-size:9px}.play-choices button{font-size:8px}}
@media(max-height:720px){.playing .mini-wrap{display:none}.playbook{bottom:107px}#play-diagram svg{height:80px}#play-description{display:none}}
@media(max-width:600px){.playbook{right:10px;bottom:155px;width:180px}.playbook-title strong{font-size:16px}#play-diagram svg{height:80px}#play-description{display:none}}

.roster-tabs{display:flex;gap:6px;margin:18px 0 12px}.roster-tabs button{background:#e3e5d6;color:#40504c;padding:9px 15px;font-size:11px;font-weight:800;letter-spacing:.7px}.roster-tabs button[aria-pressed=true]{background:#193941;color:#f6f1df}
#roster-error{font-size:11px;min-height:18px;color:#b9442f;font-weight:700}.squad-item{min-height:58px}.squad-item>div{min-width:0;flex:1}.squad-item select{width:100%;color:#182e30;background:#e3e5d6;border:1px solid #98ada4;font-size:12px;font-weight:700;padding:4px}.squad-item select option{background:#f6f1df;color:#14232b}.squad-item .roster-meta{display:block;margin-top:4px;color:#64796d;font-size:9px}
#roster-reset{color:#40504c}.stats-button{position:absolute;right:24px;top:330px}.stats-modal{width:min(980px,96vw);max-width:980px}.stats-scroll{overflow:auto;max-height:56vh}#player-stats-table{border-collapse:collapse;width:100%;font-size:11px;white-space:nowrap}#player-stats-table th,#player-stats-table td{padding:8px 7px;text-align:right;border-bottom:1px solid #cbd1bf}#player-stats-table th:first-child,#player-stats-table td:first-child{text-align:left;position:sticky;left:0;background:#f6f1df}#player-stats-table thead{position:sticky;top:0;background:#e8e7d6}#player-stats-table tbody tr:hover{background:#e7e7d6}.stat-key{font-size:10px!important}.stats-modal .roster-tabs{margin-top:8px}
#player-mini-stats{font-size:8px;color:#ffe193;letter-spacing:.5px;margin:2px 0 4px}.playing .player-card{padding-bottom:12px}
@media(max-width:900px){.stats-button{right:18px;top:315px;font-size:8px}.stats-modal{padding:20px}}
@media(max-width:600px){.stats-button{right:12px;top:273px;padding:7px;font-size:7px}.stats-scroll{max-height:50vh}#player-stats-table{font-size:9px}}

@media(max-width:600px){.playing #tactic-list{bottom:151px}.playing #receiver-hint{bottom:177px}}

#stats-screen{z-index:12}

/* Kick mode stays visible while either keyboard layout or the mouse is used. */
.playing .controls{width:calc(100% - 24px);max-width:1140px;flex-wrap:wrap;gap:8px 11px;white-space:normal}
.kick-choice{display:inline-flex;align-items:center;gap:4px;background:#243b3e;color:#d5e1d2;border:1px solid #91a8a054;padding:4px 7px;font:700 8px var(--font);letter-spacing:.5px;white-space:nowrap;cursor:pointer}
.kick-choice kbd{font-size:8px;padding:3px 4px}
.kick-choice[aria-pressed=true]{background:#654537;border-color:#ff8d64;color:#fff3d9;box-shadow:inset 0 0 0 1px #ff8d64}
.kick-choice[aria-pressed=true] kbd{border-color:#ffc59880}
.last-tackle{position:absolute;top:86px;left:50%;transform:translateX(-50%);z-index:7;min-width:520px;max-width:calc(100vw - 350px);padding:8px 12px 10px;text-align:center;background:#3b271ef2;border:2px solid #ffb75a;box-shadow:0 6px 24px #0008;color:#fff0d4}
.last-tackle strong{display:block;font:800 21px var(--display);letter-spacing:1.2px;color:#ffd078}.last-tackle>span{display:block;margin:1px 0 7px;font-size:9px;letter-spacing:.6px}
#last-tackle-kicks{display:flex;justify-content:center;flex-wrap:wrap;gap:5px}#last-tackle-kicks button{display:inline-flex;align-items:center;gap:4px;padding:5px 7px;border:1px solid #ffb75a82;background:#523b2a;color:#fff5de;font-size:9px;font-weight:700;white-space:nowrap}#last-tackle-kicks kbd{padding:3px 4px;font-size:8px}
.playing .setbar.last-tackle-set{background:#ef9b45;color:#251d18;border-color:#ffcf7c}.playing .setbar.last-tackle-set .current{background:#572d1d}
.playing .setbar.six-again-set{background:#69d4a1;color:#102b25;border-color:#baffd7}.playing .setbar.six-again-set .current{background:#176b50}
@media(max-width:700px){.last-tackle{top:267px;left:12px;transform:none;width:calc(100vw - 24px);min-width:0;max-width:none;padding:6px 7px 8px}.last-tackle strong{font-size:17px}.last-tackle>span{font-size:8px;margin-bottom:5px}#last-tackle-kicks button{font-size:8px;padding:4px 5px}#last-tackle-kicks kbd{font-size:7px}}
.referee-call{position:absolute;top:86px;left:50%;transform:translateX(-50%);z-index:8;min-width:360px;max-width:calc(100vw - 36px);padding:12px 24px;text-align:center;background:#173f3af5;border:2px solid #f2bd6c;box-shadow:0 8px 26px #0009;color:#fff0d4}
.referee-call strong{display:block;font:800 27px var(--display);letter-spacing:1.3px;color:#ffd078}.referee-call span{display:block;margin-top:3px;font-size:11px;font-weight:800;letter-spacing:.7px}
#conversion{left:auto;right:24px;top:auto;bottom:95px;transform:none;width:min(350px,calc(100vw - 32px));z-index:7;padding:22px 24px;border:2px solid #e9b866;box-shadow:0 8px 28px #0009}
#conversion h2{font-size:32px;margin:7px 0 11px}#goal-mark{font-size:11px;font-weight:800;letter-spacing:.8px;color:#e9cf9a;margin-bottom:16px}
#conversion .meter{height:26px;overflow:visible;background:linear-gradient(90deg,#733e3e,#5e5b44 35%,#5e5b44 65%,#733e3e)}
#conversion .meter i{background:#f5c96f;box-shadow:0 0 12px #f5c96f88}#conversion .meter b{width:4px;background:#fff9e7;box-shadow:0 0 8px #fff}
#goal-kick-button{display:flex;justify-content:center;align-items:center;gap:10px;width:100%;margin-top:16px;padding:10px;background:#edb965;color:#1f2928;font-size:11px;font-weight:800;letter-spacing:1px}
#goal-kick-button kbd{color:#26332d;border-color:#77603d;background:#fff1d677}
@media(max-width:700px){.referee-call{top:267px;left:12px;transform:none;min-width:0;width:calc(100vw - 24px)}.referee-call strong{font-size:22px}#conversion{right:12px;bottom:150px;padding:16px 18px}#conversion h2{font-size:26px}}
.goal-sequence .player-card,.goal-sequence .playbook,.goal-sequence .mini-wrap,.goal-sequence .controls,.goal-sequence #receiver-hint,.goal-sequence #tactic-list,.goal-sequence .ready-hint{display:none!important}
.match-clock.time-up{background:#ef9b45;border-top-color:#ffdb8a;color:#251d18}.match-clock.time-up>span{color:#251d18;font-weight:800;letter-spacing:.5px}.match-clock.time-up strong{color:#251d18}
.playing #tactic-list{bottom:100px}.playing #receiver-hint{bottom:140px}
@media(max-width:1100px){.playing #tactic-list{bottom:130px}.playing #receiver-hint{bottom:170px}}
@media(max-width:600px){.playing .controls{display:flex;justify-content:center;gap:6px;bottom:25px;padding:8px;width:96%}.playing .controls>span,.playing #context-controls>span{font-size:7px}.playing .kick-choice{font-size:7px;padding:3px 5px}.playing .kick-choice kbd{font-size:7px}.playing #tactic-list{bottom:160px}.playing #receiver-hint{bottom:187px}.playing .ready-hint{bottom:210px}}

/* Match-wide leaderboards sit above the full roster table. */
.stats-modal{width:min(1120px,96vw);max-width:1120px;max-height:calc(100dvh - 100px)}
.stats-modal .stats-intro{margin:0 0 15px;font-size:13px;color:#526b61}
.match-leaders{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:17px 0 26px}
.leader-category{min-width:0;padding:14px;background:#ebefe6;border:1px solid #c7d4c6}
.leader-category h3{margin:0;color:#20433a;font:800 18px var(--display);letter-spacing:.7px}
.stat-podium{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:end;gap:8px;min-height:210px;margin-top:11px}
.podium-player{--team-accent:#de7653;grid-row:1;display:flex;flex-direction:column;align-items:center;min-width:0;min-height:180px;padding:8px 5px 10px;border:2px solid var(--team-accent);background:#fffdf4;text-align:center}
.podium-player.team-away{--team-accent:#4c9fb7}
.podium-player.rank-1{grid-column:2;min-height:202px;background:#fff9e9}
.podium-player.rank-2{grid-column:1}
.podium-player.rank-3{grid-column:3;min-height:172px}
.podium-rank{align-self:flex-start;color:#24483e;font:800 16px var(--display);line-height:1}
.podium-player img{width:58px;height:54px;object-fit:contain;image-rendering:pixelated}
.podium-player strong{max-width:100%;color:#183b35;font:800 15px var(--font);line-height:1.1;overflow-wrap:anywhere}
.podium-position,.podium-team{display:block;max-width:100%;font-size:10px;font-weight:700;line-height:1.25;color:#506a5e;overflow-wrap:anywhere}
.podium-team{color:#285646;font-weight:800}
.team-away .podium-team{color:#236f86}
.podium-value{display:flex;align-items:baseline;justify-content:center;gap:2px;width:100%;margin-top:auto;padding-top:6px;border-top:1px solid #cfdbca;color:#173f37}
.podium-value b{font:800 27px var(--display);line-height:1}
.podium-value small{font-size:11px;font-weight:800}
.leader-empty{display:flex;align-items:center;justify-content:center;min-height:90px;margin:11px 0 0!important;padding:12px;border:1px dashed #b9cabb;color:#5a7166;text-align:center}
.stats-details{border-top:1px solid #b9cbbd;padding-top:13px}
.stats-details summary{display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;color:#1d4439;font-size:14px;font-weight:800;letter-spacing:.6px}
.stats-details summary span{color:#5a7166;font-size:11px;font-weight:700;letter-spacing:0}
.stats-details[open] summary{margin-bottom:12px}
.stats-details .roster-tabs{margin-top:0}
.stats-details .stats-scroll{max-height:45vh}
@media(max-width:760px){.match-leaders{grid-template-columns:1fr}.stats-modal{width:calc(100vw - 24px);max-height:calc(100dvh - 90px)}.leader-category{padding:11px}.podium-player strong{font-size:14px}}
@media(max-width:430px){.stat-podium{gap:5px}.podium-player{padding:6px 3px 8px}.podium-player img{width:47px;height:46px}.podium-player strong{font-size:12px}.podium-position,.podium-team{font-size:9px}.podium-value b{font-size:22px}.stats-details summary span{font-size:9px}}

/* A full keyboard layout, with quiet inactive keys and mode-specific actions. */
.controls-modal{width:min(1180px,96vw);max-width:1180px;padding:17px 28px}
.controls-modal .eyebrow{margin-bottom:8px}
.controls-modal h2{margin-bottom:3px}.controls-modal .controls-intro{margin:0 0 10px;font-size:12px}
.control-tabs{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;margin:12px 0}
.control-tab-row{display:flex;gap:4px;flex-wrap:wrap}
.control-tab-row button{padding:8px 12px;background:#e2e9dd;border:1px solid #b6c7b7;color:#315348;font-size:10px;font-weight:800;letter-spacing:.4px}
.control-tab-row button[aria-selected=true]{background:#244c40;border-color:#244c40;color:#fff7e5}
.control-visuals{display:grid;grid-template-columns:minmax(0,1fr) 250px;gap:12px;align-items:stretch}
.control-visuals.keyboard-only{grid-template-columns:1fr}.control-visuals.keyboard-only .control-mouse{display:none}
.control-keyboard{min-width:0;padding:10px 12px;background:#dfe6dc;border:1px solid #b9cbbd;overflow-x:auto}
.control-keyboard h3{margin:0 0 7px;font:800 13px var(--display);letter-spacing:.8px;color:#244c40}
.control-keyboard h3 small{display:none;font:700 9px var(--font);color:#668074}
.keyboard-rows{display:grid;gap:4px;min-width:730px}
.keyboard-row{display:flex;gap:4px;min-width:0}
.number-row{align-items:flex-end}.tactic-key-group{position:relative;display:flex;gap:4px;flex:4 1 0;min-width:0;padding-top:22px}
.tactic-key-group .guide-key{flex:1 1 0}.tactic-bracket{position:absolute;top:9px;left:0;right:0;height:13px;border:2px solid #b46a49;border-bottom:0;color:#9b4a34;text-align:center}
.tactic-bracket span{position:relative;top:-9px;display:inline-block;background:#dfe6dc;padding:0 5px;font-size:9px;font-weight:800;letter-spacing:.35px;white-space:nowrap}
.guide-key{flex:var(--key-width,1) 1 0;min-width:0;height:41px;padding:3px 1px;background:#cfd8cf;border:1px solid #b5c1b5;border-bottom-width:3px;border-radius:4px;color:#718278;text-align:center;display:flex;flex-direction:column;justify-content:center;align-items:center}
.guide-key.is-active{background:#fffaf0;border-color:#d68862;border-bottom-color:#a8553b;color:#24473e}
.guide-key kbd{display:block;padding:0;border:0;background:transparent;box-shadow:none;color:inherit;font:800 14px var(--display);line-height:1}
.guide-key small{display:block;margin-top:4px;color:#9b4a34;font-size:8px;font-weight:800;line-height:1.05;white-space:normal;overflow-wrap:normal}
.keyboard-arrows{display:grid;grid-template-columns:repeat(3,50px);grid-template-rows:repeat(2,30px);gap:4px;justify-content:end;margin-top:2px}
.keyboard-arrows .guide-key{height:30px}.keyboard-arrows .guide-key:nth-child(1){grid-column:1;grid-row:2}.keyboard-arrows .guide-key:nth-child(2){grid-column:2;grid-row:2}.keyboard-arrows .guide-key:nth-child(3){grid-column:2;grid-row:1}.keyboard-arrows .guide-key:nth-child(4){grid-column:3;grid-row:2}
.keyboard-arrows .guide-key kbd{font-size:12px}.keyboard-arrows .guide-key small{font-size:7px;margin-top:1px}
.control-mouse{display:flex;flex-direction:column;align-items:center;gap:7px;min-width:0;padding:11px 15px;background:#e9eee4;border:1px solid #b9cbbd}
.control-mouse h3{align-self:stretch;margin:0;color:#244c40;font:800 13px var(--display);letter-spacing:.8px}
.mouse-diagram{position:relative;display:grid;grid-template-columns:1fr 1fr;width:112px;height:122px;flex:0 0 122px;border:3px solid #315a50;border-radius:48% 48% 42% 42%;overflow:hidden;background:#fffaf0}
.mouse-diagram span{display:grid;place-items:center;height:55px;border-bottom:2px solid #315a50;font-size:10px;font-weight:800;color:#315a50}
.mouse-diagram span:first-child{border-right:2px solid #315a50}.mouse-diagram i{position:absolute;top:30px;left:calc(50% - 3px);width:6px;height:17px;border-radius:4px;background:#e37e56}
.mouse-actions{width:100%;display:grid;gap:7px;color:#31564a;font-size:10px;line-height:1.3}.mouse-actions>div{display:grid;gap:2px}.mouse-actions b{color:#244c40;font-size:10px}.mouse-kick-list{margin:1px 0 0 21px;padding:0;color:#46695c;font-size:10px}.mouse-kick-list li{padding:3px 0;border-bottom:1px solid #cbd9ca}.mouse-kick-list li:last-child{border:0}.mouse-kick-list li b{display:inline-block;min-width:91px}.mouse-kick-list li span{color:#8b4a34;font-weight:800}
.controls-modal .control-context{margin:8px 0 10px;font-size:10px;line-height:1.35;color:#456357}
.controls-modal #resume{width:auto;min-width:225px;padding:12px 17px;margin-top:4px}.controls-modal #quit{margin-top:1px;padding:8px 0}
/* Selected Pokémon ratings, separate from match totals. */
.playing .player-card{display:block;width:356px;min-width:0;padding:9px 11px 11px}
.player-card-main{display:flex;align-items:center;gap:9px;min-width:0}
.player-card-info{min-width:0;flex:1}.playing .player-card-main>img{width:52px;height:52px;flex:0 0 52px}
.player-card-main #player-number{align-self:flex-start;color:#ffffff27;font:800 35px var(--display);line-height:1}
.playing .player-card #player-name{display:block;line-height:1.05}
.playing .player-card #player-mini-stats{font-size:9px;line-height:1.3;white-space:normal}
.player-rating-heading{margin:9px 0 5px;padding-top:7px;border-top:1px solid #8aaca24d;color:#d9e8d4;font-size:10px;font-weight:800;letter-spacing:.9px}
.player-league-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px 9px}
.hud-rating{display:grid;grid-template-columns:69px minmax(0,1fr) 22px;gap:4px;align-items:center;min-width:0;color:#e2ead9;font-size:9px;font-weight:700}
.hud-rating>span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.hud-rating>b{text-align:right;font-size:10px}
.hud-rating-track{display:block;height:6px;background:#526c63;border-radius:6px;overflow:hidden}
.hud-rating-track>i{display:block;height:100%}.hud-rating-track .tier-low{background:#9ca8a5}.hud-rating-track .tier-fair{background:#e3a060}.hud-rating-track .tier-good{background:#50b77c}.hud-rating-track .tier-elite{background:#67b6df}
@media(max-width:1060px){.control-visuals{grid-template-columns:1fr}.control-mouse{align-items:flex-start}.mouse-diagram{align-self:center}}
@media(max-width:960px){.controls-modal{padding:20px}}
@media(max-width:700px){.controls-modal{padding:17px}.control-tab-row button{font-size:10px;padding:7px 9px}.control-keyboard{padding:8px}.control-keyboard h3 small{display:inline;margin-left:8px}.keyboard-rows{min-width:800px}.keyboard-arrows{justify-content:start}}
@media(max-width:430px){.playing .player-card{width:348px;transform:scale(.58)}}
.player-card-info #player-hint{display:block;color:#a7bab0;font-size:9px;letter-spacing:.5px;line-height:1.2}
@media(max-width:600px){.playing .player-card{top:161px;left:12px;transform:scale(.7);transform-origin:top left}}
.playing .player-card{width:400px}
.playing .player-card #player-mini-stats{font-size:10px}
.hud-rating{grid-template-columns:78px minmax(0,1fr) 24px;font-size:10px}
.hud-rating>b{font-size:11px}.hud-rating-track{height:7px}
@media(max-width:430px){.playing .player-card{width:380px;transform:scale(.65)}}

@media(max-width:700px){.controls-modal #resume{position:static}}
@media(max-width:600px){
 .playing .player-card{width:250px;top:161px;left:12px;transform:none;padding:7px 8px 9px}
 .playing .player-card-main>img{width:40px;height:40px;flex-basis:40px}
 .playing .player-card #player-name{font-size:19px}
 .playing .player-card #player-mini-stats{font-size:8px}
 .player-card-info #player-hint{font-size:8px}
 .player-rating-heading{font-size:9px;margin:7px 0 5px;padding-top:5px}
 .player-league-stats{gap:4px 6px}
 .hud-rating{grid-template-columns:51px minmax(0,1fr) 17px;gap:2px;font-size:8px}
 .hud-rating>b{font-size:9px}.hud-rating-track{height:6px}
}

/* Keep phone play readable; the full ratings and match totals remain in Player Stats. */
@media(max-width:700px){
 #app{min-height:0}
 .playing .player-card{top:153px;left:12px;width:min(230px,calc(100vw - 138px));min-width:0;padding:7px 9px;transform:none}
 .playing .player-card-main>img{width:36px;height:36px;flex:0 0 36px}
 .playing .player-card #player-name{font-size:17px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
 .playing .player-card #player-position{font-size:8px;margin-bottom:2px}
 .playing .player-card .stamina-track{width:100%;margin:5px 0 0}
 .playing .player-card #player-number,.playing .player-card #player-mini-stats,.playing .player-card #player-hint,.playing .player-card .player-rating-heading,.playing .player-card .player-league-stats{display:none}
 .stats-button{top:231px;right:12px}
 .playbook{right:10px;bottom:101px;width:170px}
}
@media(max-height:500px) and (orientation:landscape){
 #app{min-height:0}
 .playing .masthead{height:44px}
 .playing .scorebug{top:48px;height:48px}
 .playing .setbar{top:96px}
 .playing .player-card{top:125px;left:12px;width:220px;padding:6px 8px;transform:none}
 .playing .player-card-main>img{width:34px;height:34px;flex-basis:34px}
 .playing .player-card #player-name{font-size:17px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
 .playing .player-card #player-number,.playing .player-card #player-mini-stats,.playing .player-card #player-hint,.playing .player-card .player-rating-heading,.playing .player-card .player-league-stats{display:none}
 .playing .player-card .stamina-track{width:100%;margin:4px 0 0}
 .camera-button,.playing .pause-button{top:50px}
 .stats-button{top:125px;right:12px}
 .playbook{bottom:85px;right:12px;width:170px}
 .playing .controls{bottom:22px;padding:7px 10px}
 .playing #receiver-hint,.playing #tactic-list,.playing .ready-hint{display:none}
}
