:root{--paper:#f5f4ee;--white:#fffefa;--ink:#192422;--muted:#7b817b;--line:#dfE2d9;--accent:#ed603f;--green:#21654d;--lime:#d9e9a5;--radius:16px;font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}
*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{opacity:.55;cursor:wait}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #ec8f37;outline-offset:4px}button{border:0}button svg,a svg{width:18px;height:18px;vertical-align:middle}h1,h2,h3,p{margin:0}h1,h2,h3{letter-spacing:-.04em}h1{font-size:42px;line-height:1.1}h2{font-size:26px}h3{font-size:18px}p{line-height:1.65}small{font-size:12px}.muted{color:var(--muted)}.eyebrow{font-size:10px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;display:flex;gap:8px;align-items:center}.dot{width:7px;height:7px;background:var(--accent);border-radius:50%;display:inline-block}.pill{display:inline-flex;align-items:center;gap:6px;font-size:10px;font-weight:700;letter-spacing:.05em;padding:7px 10px;border-radius:5px;background:#edf0e8;color:#53604e;white-space:nowrap}.pill.accent{background:#fce8df;color:#bd5438}.pill.dark{background:#ffffff12;color:#c9d3b8}.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;background:var(--ink);color:white;border-radius:8px;min-height:45px;padding:12px 19px;font-size:13px;font-weight:700;transition:transform .15s,background .15s}.btn:hover{background:#31443c;transform:translateY(-1px)}.btn.primary{background:var(--accent)}.btn.primary:hover{background:#d95031}.btn.light{background:var(--white);color:var(--ink);border:1px solid var(--line)}.btn.ghost{background:transparent;border:1px solid #ffffff30;color:white}.btn.small{min-height:35px;padding:8px 12px;font-size:12px}.btn.wide{width:100%}.text-btn{background:none;color:var(--muted);font-size:12px;padding:8px}.text-btn:hover{color:var(--ink)}.flex{display:flex;align-items:center;gap:12px}.between{display:flex;align-items:center;justify-content:space-between;gap:14px}.stack{display:flex;flex-direction:column;gap:20px}.panel{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:25px}.divider{height:1px;background:var(--line);margin:22px 0}.brand{font-family:Impact,'Arial Black',sans-serif;font-size:31px;font-style:italic;letter-spacing:-1px;display:flex;align-items:center;gap:11px}.brand-mark{display:inline-flex;width:29px;height:34px;align-items:center;justify-content:center;background:var(--accent);color:var(--ink);clip-path:polygon(0 0,100% 0,100% 72%,50% 100%,0 72%);font-family:Arial;font-size:20px;font-style:normal;font-weight:900}.topbar{height:84px;background:var(--ink);color:var(--white);display:flex;align-items:center;padding:0 max(32px,calc((100vw - 1300px)/2));gap:60px}.topbar nav{height:100%;display:flex;gap:30px}.topbar nav a{display:flex;align-items:center;height:100%;font-size:13px;color:#b1bab4;position:relative}.topbar nav a.active{color:white}.topbar nav a.active:after{content:'';position:absolute;bottom:0;left:0;right:0;height:3px;background:var(--accent)}.topbar .account{margin-left:auto;display:flex;align-items:center;gap:12px;font-size:12px}.avatar{height:32px;width:32px;background:#38443a;color:var(--lime);border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700}.topbar .text-btn{color:#aeb9ae}.shell{max-width:1364px;margin:auto;padding:35px 32px 45px}.page-head{margin-bottom:30px}.page-head .eyebrow{margin-bottom:12px;color:var(--muted)}.page-head h1{font-size:35px}.page-head p{color:var(--muted);font-size:13px;margin-top:9px}.dashboard{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:24px}.club-hero{background:var(--ink);color:var(--white);padding:30px 32px;border-radius:16px;position:relative;overflow:hidden;min-height:245px}.club-hero:before{content:'';position:absolute;width:280px;height:280px;border:1px solid #ffffff0e;border-radius:50%;right:-90px;top:-100px}.club-hero h2{font-size:39px;max-width:70%;overflow-wrap:anywhere;margin-top:30px}.club-hero .hero-meta{color:#b4c0b0;display:flex;gap:20px;font-size:12px;margin-top:15px}.club-hero .crest{position:absolute;right:35px;top:57px;width:106px;height:124px;transform:rotate(8deg);font-size:45px}.crest{width:56px;height:64px;display:flex;align-items:center;justify-content:center;clip-path:polygon(0 0,100% 0,100% 72%,50% 100%,0 72%);background:var(--accent);color:#fffefa;position:relative;font-size:22px;font-weight:800;flex-shrink:0;letter-spacing:-.08em}.crest.away{background:#cce6ce;color:#214d3e}.crest:after{content:'';position:absolute;inset:5px;clip-path:polygon(0 0,100% 0,100% 72%,50% 100%,0 72%);border:1px solid #ffffff4d}.record{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);border-radius:12px;background:var(--white);padding:19px 0}.record>div{text-align:center;border-right:1px solid var(--line)}.record>div:last-child{border:0}.record strong{display:block;font-size:26px;letter-spacing:-.05em;margin-bottom:6px}.record span{color:var(--muted);font-size:11px}.section-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;gap:12px}.section-head h2{font-size:21px}.invite-panel{background:#e7ebdd;border-color:#dbe0ce;position:relative}.invite-panel h2{font-size:27px;line-height:1.13;margin-top:21px;margin-bottom:14px}.invite-panel p{font-size:12px;color:#687360;margin-bottom:20px}.invite-panel .code{font-family:monospace;font-size:14px;letter-spacing:.06em;margin:14px 0 10px;padding:13px;border:1px dashed #b9c3aa;border-radius:7px;user-select:all;background:#ffffff45}.invite-panel .hint{font-size:10px;margin:10px 0 0;line-height:1.6}.invite-panel .btn{font-size:12px}.invite-banner{display:flex;align-items:center;justify-content:space-between;gap:14px;border:1px solid #f1c8b9;background:#fff0e8;padding:18px 22px;border-radius:12px;margin-bottom:24px}.invite-banner p{font-size:12px;color:#875c4b}.invite-banner strong{font-size:15px}.empty{padding:28px 10px;text-align:center}.empty .empty-symbol{margin:0 auto 14px;height:46px;width:46px;border:1px solid var(--line);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:22px;color:#879481}.empty h3{font-size:16px;margin-bottom:8px}.empty p{font-size:12px;color:var(--muted);max-width:340px;margin:0 auto;line-height:1.7}.challenge-row,.history-row{display:flex;gap:14px;align-items:center;padding:16px 0;border-top:1px solid var(--line)}.challenge-row:first-child,.history-row:first-child{border-top:0}.challenge-row .crest,.history-row .crest{width:34px;height:40px;font-size:15px}.challenge-info{flex:1;min-width:0}.challenge-info strong{font-size:13px;display:block;overflow-wrap:anywhere}.challenge-info small{display:block;font-size:11px;color:var(--muted);margin-top:6px}.row-actions{display:flex;gap:5px;align-items:center}.history-row .score{font-weight:700;font-size:18px;letter-spacing:.08em;white-space:nowrap}.history-row .score.hidden{font-size:11px;letter-spacing:0;color:var(--green)}.history-row button{margin-left:auto;white-space:nowrap}.country-label{display:flex;gap:7px;align-items:center}.formation{position:relative;aspect-ratio:1.15;background:#285542;border-radius:9px;overflow:hidden;border:7px solid #234d3c;background-image:repeating-linear-gradient(0deg,#ffffff03 0,#ffffff03 12.5%,transparent 12.5%,transparent 25%)}.formation:before{content:'';position:absolute;inset:9px;border:1px solid #ffffff38}.formation:after{content:'';position:absolute;top:43%;left:38%;width:24%;height:26%;border:1px solid #ffffff38;border-radius:50%}.formation .half-line{position:absolute;top:56%;height:1px;left:9px;right:9px;background:#ffffff38}.player-dot{position:absolute;width:25px;height:28px;background:var(--accent);clip-path:polygon(18% 0,36% 0,40% 7%,60% 7%,64% 0,82% 0,100% 24%,80% 38%,80% 100%,20% 100%,20% 38%,0 24%);transform:translate(-50%,-50%);display:flex;align-items:center;justify-content:center;color:white;font-size:10px;font-weight:700;z-index:1}.formation .player-dot:first-of-type{background:#e2d38e;color:#203029}.formation-note{display:flex;justify-content:space-between;font-size:11px;color:var(--muted);margin-top:12px}.player-table{width:100%;border-collapse:collapse;text-align:left}.player-table th{font-size:10px;text-transform:uppercase;color:var(--muted);letter-spacing:.07em;padding:12px 10px;font-weight:500}.player-table td{font-size:12px;border-top:1px solid var(--line);padding:13px 10px}.player-table td:first-child{color:var(--muted);width:40px}.player-table td.name{font-weight:700}.position{display:inline-flex;align-items:center;justify-content:center;min-width:29px;padding:5px;font-size:10px;font-weight:700;border-radius:4px;background:#edf0e8;color:#61724c}.position.gk{background:#f7edc9;color:#8f7725}.position.fw{background:#fae5dc;color:#bd6044}.rating{display:inline-flex;width:27px;height:27px;align-items:center;justify-content:center;border-radius:5px;font-size:12px;font-weight:700;background:#eaf0dd;color:#517330}.table-wrap{overflow-x:auto}.squad-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:24px}.bench-label{padding:20px 10px 10px;font-size:10px;text-transform:uppercase;letter-spacing:.13em;color:var(--muted)}.footer{display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--line);margin-top:36px;padding-top:20px;font-size:10px;color:var(--muted)}.footer b{font-weight:700;letter-spacing:.08em}.field-help{font-size:11px;color:var(--muted);line-height:1.6;margin-top:7px}.field-label{font-size:11px;font-weight:700;display:block;margin-bottom:8px}.input{width:100%;min-height:45px;border:1px solid #d8ded1;background:#fffefa;border-radius:7px;padding:12px 13px;color:var(--ink);font-size:13px}.input::placeholder{color:#a3aaa0}.input:focus{border-color:#6f8367;outline:2px solid #dce3d4}.inline-form{display:flex;gap:7px}.inline-form .input{min-width:0}.field{margin-bottom:17px}.form-error{color:#b4422c;background:#fcece4;border-radius:6px;padding:10px 12px;font-size:12px;margin-bottom:15px;line-height:1.6}.form-error:empty{display:none}#toast{position:fixed;left:50%;bottom:25px;transform:translate(-50%,20px);background:var(--ink);color:white;padding:13px 20px;border-radius:10px;box-shadow:0 8px 40px #0002;font-size:13px;max-width:min(90vw,550px);z-index:100;opacity:0;pointer-events:none;transition:.2s;line-height:1.5}#toast.visible{opacity:1;transform:translate(-50%,0)}.loading{height:100vh;display:flex;align-items:center;justify-content:center;flex-direction:column;font-size:50px;font-weight:900;font-style:italic}.loading span{font-size:13px;font-weight:400;font-style:normal;margin-top:12px;color:var(--muted)}
/* Welcome */
.welcome-bar{background:var(--paper);color:var(--ink);height:90px;border-bottom:1px solid var(--line)}.welcome-bar .beta{margin-left:auto;font-size:10px;letter-spacing:.12em}.welcome{max-width:1270px;margin:auto;padding:55px 32px 35px;display:grid;grid-template-columns:minmax(0,1fr) 420px;gap:70px;align-items:start}.welcome-copy{padding-top:28px}.welcome-copy h1{font-size:clamp(45px,5.6vw,77px);line-height:.97;letter-spacing:-.06em;margin:28px 0 23px;font-weight:900}.welcome-copy h1 span{color:var(--accent)}.welcome-copy>p{font-size:14px;color:#757e73;max-width:390px;line-height:1.85}.welcome-art{margin-top:36px;background:#223f32;border-radius:12px;height:220px;position:relative;overflow:hidden}.welcome-art svg{width:100%;height:100%}.welcome-art .art-label{position:absolute;bottom:16px;left:18px;color:#d4dccb;font-size:9px;letter-spacing:.13em;display:flex;align-items:center;gap:7px}.welcome-art .art-badge{position:absolute;top:16px;right:16px;color:#d7e2cd;border:1px solid #ffffff25;border-radius:5px;font-size:9px;padding:6px 8px;letter-spacing:.08em}.welcome-points{display:flex;justify-content:space-between;margin-top:24px;gap:15px}.welcome-points strong{display:block;font-size:22px;letter-spacing:-.03em}.welcome-points span{font-size:10px;color:var(--muted);display:block;margin-top:7px}.auth-card{padding:28px 30px;background:var(--white);border:1px solid var(--line);border-radius:16px;box-shadow:0 12px 50px #26341d04}.auth-tabs{display:flex;padding:4px;background:#eff0e9;border-radius:8px;margin-bottom:24px;gap:4px}.auth-tabs button{background:transparent;border-radius:5px;min-height:34px;flex:1;font-size:12px;color:var(--muted)}.auth-tabs button.active{background:var(--white);color:var(--ink);box-shadow:0 1px 4px #24332210;font-weight:700}.auth-card h2{font-size:25px;margin-bottom:7px}.auth-card .sub{font-size:12px;color:var(--muted);margin-bottom:23px}.country-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.country-choice{background:#f5f5f0;color:#697361;border:1px solid transparent;border-radius:7px;padding:9px 3px;font-size:9px;display:flex;align-items:center;flex-direction:column;gap:5px}.country-choice span{font-size:22px}.country-choice.active{background:#eaf0df;border-color:#8aa16c;color:#243e20}.auth-note{font-size:10px;color:var(--muted);text-align:center;line-height:1.7;margin-top:13px}.auth-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}.auth-fields .field{min-width:0}.welcome-footer{max-width:1206px;margin:0 auto 25px;display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:20px;font-size:10px;color:var(--muted)}.welcome-invite{margin-bottom:20px;font-size:12px;background:#e9eedf;color:#596a47;border-radius:8px;padding:12px;line-height:1.7}
/* Match theatre */
.match-page{max-width:1364px}.match-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.match-head .eyebrow{color:var(--muted)}.match-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:22px}.theatre{border-radius:16px;background:#192b24;color:var(--white);overflow:hidden;border:1px solid #223a2c}.scoreboard{display:grid;grid-template-columns:1fr auto 1fr;gap:24px;align-items:center;padding:25px 30px;background:#1c2d25}.score-team{display:flex;gap:15px;align-items:center;min-width:0}.score-team:last-child{justify-content:flex-end;text-align:right}.score-team .crest{width:40px;height:47px;font-size:19px}.score-team strong{font-size:15px;display:block;overflow-wrap:anywhere}.score-team small{font-size:10px;color:#a4b5a2;display:block;margin-top:7px}.score-center{text-align:center}.score-center .digits{font-size:39px;font-weight:700;letter-spacing:.09em;font-variant-numeric:tabular-nums;white-space:nowrap}.score-center .clock{font-size:11px;display:inline-block;padding:5px 10px;background:#334c36;color:#d6e1ac;border-radius:4px;margin-top:8px;font-variant-numeric:tabular-nums}.pitch-wrap{position:relative;padding:0 14px}.pitch-wrap canvas{display:block;width:100%;aspect-ratio:1.55;border-radius:3px}.match-controls{display:flex;align-items:center;gap:9px;padding:18px 22px}.match-controls .btn{min-height:36px;font-size:11px;padding:8px 12px}.match-controls .skip{margin-left:auto}.progress-track{height:3px;background:#2c4334}.progress-fill{height:100%;background:var(--accent);width:0;transition:width .1s linear}.match-notice{position:absolute;left:50%;top:45%;transform:translate(-50%,-50%);padding:15px 28px;border-radius:7px;background:#f2f2eaeF;color:var(--ink);font-size:24px;font-weight:900;box-shadow:0 8px 25px #0003;pointer-events:none;opacity:0;white-space:nowrap}.match-notice.show{opacity:1}.match-side{display:flex;flex-direction:column;gap:18px}.match-side .panel{padding:21px}.stat-row{margin-top:21px}.stat-row .numbers{display:flex;justify-content:space-between;align-items:center;font-size:13px}.stat-row .numbers span{font-size:11px;color:var(--muted)}.stat-track{margin-top:9px;display:flex;gap:4px;height:4px}.stat-track i{background:var(--accent);border-radius:2px;min-width:2px}.stat-track i:last-child{background:#9cbb9b}.match-feed{height:240px;overflow-y:auto}.event{display:flex;align-items:flex-start;gap:11px;padding:11px 0;border-bottom:1px solid var(--line);font-size:11px;line-height:1.6}.event .minute{font-size:10px;color:var(--muted);min-width:25px;margin-top:1px}.event.goal{font-weight:700}.event.goal .minute{color:var(--accent)}.match-explainer{font-size:11px;line-height:1.8;color:var(--muted);padding:0 6px}.report{margin-top:22px}.report h2{margin-bottom:8px}.report>p{font-size:13px;color:var(--muted)}.report .goals{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}.goal-chip{background:#f0f2e9;border-radius:6px;padding:9px 12px;font-size:11px}.report[hidden]{display:none}.reconnect{color:#b05236;font-size:11px;margin-top:10px}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:22px}.intro-steps{counter-reset:step}.intro-steps p{display:flex;gap:12px;font-size:12px;color:var(--muted);margin-top:17px}.intro-steps p:before{counter-increment:step;content:'0' counter(step);color:#899578;font-size:10px;font-weight:700;padding-top:4px}
@media(min-width:1500px){.welcome{padding-top:75px}.welcome-art{height:250px}}
@media(max-width:1100px){.welcome{gap:35px;grid-template-columns:1fr 380px}.welcome-copy h1{font-size:60px}.dashboard,.squad-layout{grid-template-columns:minmax(0,1fr) 290px}.topbar{gap:35px}.match-layout{grid-template-columns:minmax(0,1fr) 260px}.scoreboard{padding:22px 18px;gap:12px}.score-team{gap:10px}.score-team strong{font-size:12px}.score-team .crest{width:30px;height:36px;font-size:15px}}
@media(max-width:850px){.welcome{grid-template-columns:1fr;max-width:580px;gap:32px;padding-top:24px}.welcome-copy{padding-top:0}.welcome-copy h1{font-size:64px}.welcome-art{height:190px;margin-top:25px}.welcome-points{margin-top:16px}.auth-card{padding:26px}.welcome-footer{margin:20px 32px;gap:20px}.dashboard,.squad-layout{grid-template-columns:minmax(0,1fr) 260px;gap:16px}.shell{padding:28px 22px}.panel{padding:20px}.club-hero{padding:25px;min-height:230px}.club-hero h2{font-size:30px}.club-hero .crest{right:22px;width:74px;height:90px;font-size:32px;top:77px}.club-hero .hero-meta{gap:12px;font-size:10px}.topbar{padding:0 22px;gap:25px;height:72px}.topbar nav{gap:20px}.account .username{display:none}.match-layout{grid-template-columns:1fr}.match-side{display:grid;grid-template-columns:1fr 1fr}.match-explainer{grid-column:1/-1}.match-feed{height:225px}.two-col{grid-template-columns:1fr}}
@media(max-width:640px){.topbar{gap:25px;padding:0 18px;height:68px}.brand{font-size:27px;gap:8px}.brand-mark{width:24px;height:28px;font-size:17px}.topbar nav{gap:17px}.topbar nav a{font-size:11px}.account .avatar{display:none}.topbar .text-btn{font-size:10px;padding:0}.topbar .account{gap:0}.shell{padding:24px 16px}.page-head h1{font-size:29px}.page-head p{font-size:12px}.dashboard,.squad-layout{grid-template-columns:1fr}.dashboard>.stack:last-child{display:grid;grid-template-columns:1fr}.club-hero{min-height:215px}.club-hero h2{font-size:34px}.club-hero .crest{width:76px;height:93px}.record{padding:15px 0}.record strong{font-size:23px}.invite-panel h2{font-size:28px}.footer{font-size:9px;line-height:1.6}.row-actions{flex-wrap:wrap;justify-content:flex-end;max-width:125px}.challenge-info strong{font-size:12px}.challenge-row{gap:10px}.panel{padding:20px}.welcome{padding:28px 20px}.welcome-copy h1{font-size:59px;margin-top:22px}.welcome-bar .beta{font-size:8px}.welcome-copy>p{font-size:13px}.welcome-art{height:180px}.welcome-copy{padding-top:0}.auth-card{padding:24px 20px}.auth-fields{grid-template-columns:1fr;gap:0}.country-choice{font-size:9px;padding:9px 1px}.welcome-footer{margin:10px 20px 25px;font-size:9px}.scoreboard{padding:20px 12px;gap:8px}.score-team{flex-direction:column;text-align:center;gap:8px}.score-team:last-child{flex-direction:column-reverse;text-align:center}.score-team .crest{width:32px;height:38px}.score-team strong{font-size:11px}.score-team small{font-size:9px}.score-center .digits{font-size:33px}.score-center .clock{font-size:10px}.pitch-wrap{padding:0 5px}.pitch-wrap canvas{aspect-ratio:1.35}.match-controls{padding:14px 10px;gap:7px;flex-wrap:wrap}.match-controls .btn{padding:8px 10px;font-size:10px}.match-notice{font-size:20px}.match-side{grid-template-columns:1fr}.match-side .panel{padding:22px}.match-feed{height:195px}.match-head .eyebrow{font-size:9px}.history-row .score{font-size:15px}.history-row{gap:10px}.invite-banner{align-items:flex-start;flex-direction:column}.player-table .skill-col{display:none}.player-table td,.player-table th{padding-left:5px;padding-right:5px}.welcome-points span{font-size:9px}.squad-layout .formation{max-width:360px;margin:auto}}
/* Dressing room / tactical board */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.board-page{padding-top:18px}.board-page .page-head{margin-bottom:16px}.board-page .page-head h1{font-size:32px}
.board-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:18px;align-items:start}.lineup-workspace{display:grid;grid-template-columns:minmax(0,1fr) 180px;gap:12px;align-items:start;min-width:0}
.board-panel{background:#1d3027;border-radius:14px;padding:14px;color:#e7eddf;min-width:0}.board-toolbar{display:flex;justify-content:space-between;align-items:center;gap:8px}.board-toolbar .input{width:85px;min-height:35px;padding:7px 9px;background:#2f4637;color:#e0e6d7;border-color:#4b6148;font-size:12px}.board-toolbar .btn{font-size:11px;padding:8px 10px}
.direction-label{text-align:center;color:#b0c29d;font-size:10px;margin:10px 0;line-height:11px}
.lineup-pitch{position:relative;width:100%;max-width:760px;aspect-ratio:1.22;height:auto;margin:auto;border-radius:5px;background:repeating-linear-gradient(0deg,#3b6844 0%,#3b6844 10%,#38643f 10%,#38643f 20%);box-shadow:inset 0 0 35px #14241a25}
.board-lines{position:absolute;width:100%;height:100%;color:#d8e5be70;pointer-events:none}.board-slot{position:absolute;transform:translate(-50%,-50%);width:18%;max-width:91px;height:68px;border:2px solid transparent;border-radius:10px;z-index:2;transition:background .12s,border-color .12s}.board-player{position:relative;border:0;background:transparent;color:white;width:100%;height:100%;display:flex;align-items:center;justify-content:center;flex-direction:column;padding:3px 0;touch-action:none;user-select:none;cursor:grab}
.board-page .board-player .kit-shirt{width:30px;height:33px}.player-caption{min-width:0}.board-player .player-caption{margin-top:3px;display:flex;align-items:center;flex-direction:column;max-width:100%;font-size:10px;line-height:1.25;text-shadow:0 1px 2px #102b19}.player-caption b{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.player-caption small{font-size:9px;color:#c7d6b8;margin-top:2px;display:flex;gap:4px;align-items:center}.player-caption em{font-style:normal;font-weight:700;color:white}.board-player[aria-disabled=true],.bench-player[aria-disabled=true]{cursor:default}
.slot-role{display:none;position:absolute;top:-12px;left:50%;transform:translateX(-50%);padding:2px 5px;border-radius:4px;background:#193126;color:white;font-size:9px;font-weight:700;pointer-events:none}.is-dragging .slot-role{display:block}.drag-source{opacity:.3}.board-slot[data-fit=excellent],.bench-player[data-fit=excellent]{--fit:#78e68a;--fit-bg:#78e68a26}.board-slot[data-fit=good],.bench-player[data-fit=good]{--fit:#2e9259;--fit-bg:#2e925933}.board-slot[data-fit=fair],.bench-player[data-fit=fair]{--fit:#f1d35c;--fit-bg:#f1d35c26}.board-slot[data-fit=poor],.bench-player[data-fit=poor]{--fit:#ff7470;--fit-bg:#ff625b2b}.is-dragging [data-fit]{border-color:var(--fit);background:var(--fit-bg)}.is-dragging .slot-role{color:var(--fit)}.is-dragging .drop-hover[data-fit]{box-shadow:0 0 0 3px var(--fit);z-index:4}.drop-forbidden{cursor:not-allowed}.is-dragging .drop-forbidden .slot-role:after{content:' ×'}
.position-legend{display:flex;justify-content:center;flex-wrap:wrap;gap:12px;margin-top:14px;font-size:10px;line-height:13px;color:#c6d2bf}.position-legend span{display:flex;align-items:center;gap:5px}.position-legend i{width:6px;height:6px;border-radius:50%}.fit-excellent{background:#78e68a}.fit-good{background:#2e9259}.fit-fair{background:#f1d35c}.fit-poor{background:#ff7470}
.bench-panel{padding:14px 10px}.bench-panel .section-head{margin:0 2px 12px;gap:8px}.bench-panel h3{font-size:16px}.bench-panel .pill{padding:5px 8px}.bench-grid{display:grid;grid-template-columns:1fr;gap:7px}.bench-player{border:2px solid var(--line);border-radius:8px;background:#f8f8f1;display:flex;align-items:center;text-align:left;gap:8px;padding:8px;min-height:52px;touch-action:none;user-select:none;cursor:grab;min-width:0;width:100%}.bench-player .player-caption{display:flex;flex-direction:column;font-size:11px;flex:1}.bench-player small{color:var(--muted)}.bench-player .player-caption em{color:var(--ink)}
.board-settings{gap:12px}.board-settings .panel{padding:18px}.board-settings .section-head{margin-bottom:16px}.tactic-setting{margin-top:17px}.tactic-setting .field-label{margin-bottom:7px}.tactic-options{display:flex;gap:3px;border-radius:7px;padding:3px;background:#f0f2e9}.tactic-options button{flex:1;min-width:0;padding:8px 2px;background:transparent;color:#6b7862;font-size:10px;border-radius:5px}.tactic-options button.active{background:#243d2c;color:#e9eddf}.tactic-setting p{font-size:11px;line-height:1.5;color:var(--muted);margin-top:8px}.send-panel{background:#e9edde;border-color:#d7dfca}.send-panel .field-help{margin-bottom:12px}.ready-row{display:flex;justify-content:space-between;gap:8px;font-size:11px;color:#6f7c61;margin-top:12px}.ready-row b{color:#465638;font-size:10px}.send-panel .btn{margin-top:14px}.send-panel .draft-status{font-size:10px;color:#7d8a70;line-height:1.5;margin-top:10px}.lineup-pitch.locked{filter:saturate(.8)}
.drag-player{position:fixed;transform:translate(-50%,-50%);z-index:500;pointer-events:none}.board-player-tooltip{position:fixed;z-index:450;width:250px;max-width:calc(100vw - 16px);padding:15px;background:#fffefa;color:var(--ink);border:1px solid #d8dfcf;border-radius:10px;box-shadow:0 8px 30px #10261a33;pointer-events:none}.board-player-tooltip[hidden]{display:none}.board-player-tooltip strong{font-size:13px;line-height:1.5}.board-player-tooltip p{font-size:10px;line-height:1.5;color:var(--muted);margin-top:5px}.board-player-tooltip dl{display:grid;grid-template-columns:1fr 1fr;gap:9px 16px;margin:12px 0 0}.board-player-tooltip dl div{display:flex;justify-content:space-between;gap:6px;font-size:11px}.board-player-tooltip dt{color:#6b7664}.board-player-tooltip dd{margin:0;font-weight:700}.board-player-tooltip .tooltip-fit{padding-top:10px;margin-top:10px;border-top:1px solid var(--line)}.board-player-tooltip .tooltip-fit.medium{color:#97621d}.board-player-tooltip .tooltip-fit.poor{color:#b44337}
@media(max-width:1100px){.board-layout{grid-template-columns:minmax(0,1fr) 250px;gap:12px}.lineup-workspace{grid-template-columns:minmax(0,1fr) 155px;gap:10px}.board-settings .panel{padding:15px}.bench-player{gap:5px;padding:7px 5px}.bench-player .player-caption{font-size:10px}.board-player .player-caption{font-size:9px}}
@media(max-width:900px){.board-layout{grid-template-columns:1fr}.board-settings{display:grid;grid-template-columns:1fr 1fr;align-items:start}.lineup-workspace{grid-template-columns:minmax(0,1fr) 180px}.lineup-pitch{max-width:680px}.board-page .footer{margin-top:22px}}
@media(max-width:600px){.board-page{padding:16px 12px}.board-page .page-head h1{font-size:27px}.lineup-workspace{grid-template-columns:minmax(0,1fr) 115px;gap:7px}.board-panel{padding:10px 7px}.board-toolbar{gap:4px}.board-toolbar .input{width:60px;padding:6px 2px;font-size:10px}.board-toolbar .btn{padding:6px 5px;font-size:9px}.lineup-pitch{max-width:100%;aspect-ratio:.92}.board-slot{width:21%;height:59px;border-radius:7px}.board-page .board-player .kit-shirt{width:25px;height:28px}.board-player .player-caption{font-size:8px}.board-player .player-caption small{font-size:8px;gap:2px}.board-player .player-flag{font-size:10px}.bench-panel{padding:12px 5px}.bench-panel h3{font-size:14px}.bench-player{min-height:48px;gap:4px;padding:6px 3px}.board-page .bench-player .kit-shirt{width:20px;height:23px}.bench-player .player-caption{font-size:9px}.position-legend{gap:5px 8px;font-size:8px;margin-top:12px}.board-settings{grid-template-columns:1fr}.board-page .page-head{margin-bottom:12px}}

/* Club identity and player roster */
.kit-shirt{display:block;width:35px;height:39px;flex-shrink:0;overflow:visible;filter:drop-shadow(0 3px 2px #11251933);pointer-events:none}.board-player .kit-shirt{width:36px;height:40px}.bench-player .kit-shirt{width:26px;height:29px}.board-player.selected .kit-shirt{filter:drop-shadow(0 0 3px #f6ffbe) drop-shadow(0 0 6px #c6e584)}.mini-kit{position:absolute;transform:translate(-50%,-50%);z-index:1}.mini-kit .kit-shirt{width:25px;height:28px}.drag-player.jersey-ghost{background:none;box-shadow:none;border-radius:0;width:44px;height:49px}.jersey-ghost .kit-shirt{width:44px;height:49px;filter:drop-shadow(0 4px 5px #071b0f77)}.player-detail-link{display:block;font-size:11px;color:var(--green);margin:12px 0 17px}.roster-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:22px}.roster-summary>div{background:var(--white);border:1px solid var(--line);border-radius:12px;padding:17px 20px;display:flex;justify-content:space-between;align-items:center}.roster-summary span{font-size:12px;color:var(--muted)}.roster-summary strong{font-size:27px;letter-spacing:-.05em}.roster-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:22px;align-items:start}.roster-panel{padding:22px 17px}.roster-tools{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:20px}.roster-filters{display:flex;gap:5px}.roster-filters button{padding:9px 12px;background:#eef1e6;color:#6b785f;font-size:11px;border-radius:6px}.roster-filters button.active{background:var(--ink);color:white}.sort-label{font-size:10px;color:var(--muted);display:flex;align-items:center;gap:8px}.sort-label .input{font-size:11px;min-height:34px;padding:7px;max-width:130px}.full-roster{min-width:870px}.full-roster th{text-align:center;font-size:9px;padding:12px 5px;letter-spacing:0;text-transform:none}.full-roster th:nth-child(2){text-align:left}.full-roster td{padding:12px 5px;text-align:center;font-size:11px}.full-roster td.name{text-align:left;min-width:180px}.full-roster tr.selected{background:#edf2e3}.full-roster .roster-name{background:transparent;text-align:left;font-size:11px;font-weight:700;line-height:1.55;color:var(--ink);padding:4px 0}.full-roster .roster-name:hover{color:var(--accent)}.full-roster .roster-stat{font-variant-numeric:tabular-nums;color:#68725f}.roster-status{white-space:nowrap;font-size:9px;color:#919988}.roster-status.starting{color:#587538}.player-detail{position:sticky;top:22px;padding:22px}.player-shirt-preview{background:repeating-linear-gradient(0deg,#e6ebdb 0%,#e6ebdb 20%,#e1e7d6 20%,#e1e7d6 40%);padding:25px 15px 15px;border-radius:10px;display:flex;flex-direction:column;align-items:center;gap:18px;margin-bottom:22px}.player-shirt-preview .kit-shirt{width:110px;height:121px}.player-shirt-preview .pill{background:#ffffff80}.player-detail>.eyebrow{font-size:8px;line-height:1.6}.player-detail h2{font-size:27px;line-height:1.2;margin-top:9px;overflow-wrap:anywhere}.overall-row{display:flex;align-items:center;justify-content:space-between;margin:20px 0;padding:13px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.overall-row span{color:var(--muted);font-size:11px}.overall-row strong{font-size:27px;color:#5d7b3e}.player-skill{margin-top:14px}.player-skill>div:first-child{display:flex;justify-content:space-between;font-size:11px}.player-skill span{color:var(--muted)}.skill-meter{height:4px;background:#e9edde;border-radius:3px;margin-top:7px;overflow:hidden}.skill-meter i{display:block;height:100%;background:#7f9763;border-radius:3px}.player-detail>.field-help{margin-top:20px;font-size:10px}.kit-layout{display:grid;grid-template-columns:minmax(0,1fr) 420px;gap:30px;align-items:start}.kit-showcase{background:radial-gradient(ellipse at 50% 47%,#40573d,#24362a 62%);border-radius:16px;color:#edf1df;padding:30px 35px;display:flex;flex-direction:column;position:relative;overflow:hidden}.kit-showcase:before{content:'';position:absolute;width:580px;height:580px;border:1px solid #ffffff0b;border-radius:50%;top:12%;left:50%;transform:translateX(-50%);pointer-events:none}.kit-showcase>.between{position:relative;z-index:1}.kit-showcase .eyebrow{font-size:9px;color:#b1bfa0}.kit-showcase .pill{max-width:190px;overflow:hidden;text-overflow:ellipsis;display:block}.kit-large-shirt{display:flex;justify-content:center;padding:55px 20px 26px;position:relative}.kit-large-shirt .kit-shirt{width:260px;height:286px;filter:drop-shadow(3px 19px 16px #05100b55)}.kit-controls{padding:29px}.kit-controls h2{font-size:25px}.kit-color-grid{display:grid;gap:12px;margin:25px 0}.kit-color{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:12px}.kit-color>div{display:flex;align-items:center;gap:8px;padding:5px 8px;border:1px solid var(--line);border-radius:7px}.kit-color code{font-size:11px;color:var(--muted);text-transform:uppercase}.kit-color input[type=color]{border:0;width:30px;height:29px;padding:0;background:transparent;cursor:pointer}.kit-color input::-webkit-color-swatch-wrapper{padding:2px}.kit-color input::-webkit-color-swatch{border-radius:4px;border:0}.kit-patterns{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-top:12px}.kit-patterns button{background:#f0f2e9;border:1px solid transparent;border-radius:8px;padding:12px 3px;color:#768166;display:flex;align-items:center;flex-direction:column;gap:12px;font-size:9px}.kit-patterns button.active{background:#e3ebd3;border-color:#82976b;color:#425636}.kit-patterns .kit-shirt{width:39px;height:43px}.kit-chips{display:flex;justify-content:space-around;gap:10px;padding:20px 12px 16px;background:#294833;border-radius:9px;margin:16px 0}.kit-chips>div{display:flex;flex-direction:column;align-items:center;gap:10px}.kit-chips .kit-shirt{width:36px;height:40px}.kit-chips span{font-size:9px;color:#b7cba3}.kit-controls>.draft-status{font-size:11px;margin-top:12px;color:var(--muted);line-height:1.6}
@media(max-width:1150px){.roster-layout{grid-template-columns:minmax(0,1fr) 260px;gap:17px}.kit-layout{grid-template-columns:minmax(0,1fr) 370px;gap:22px}.kit-controls{padding:24px}.topbar{gap:30px}.topbar nav{gap:22px}}
@media(max-width:900px){.roster-layout{grid-template-columns:1fr}.player-detail{position:static;display:block}.player-shirt-preview .kit-shirt{width:95px;height:105px}.player-shirt-preview{float:left;width:190px;margin-right:25px;margin-bottom:20px}.player-detail .player-skill{clear:both}.roster-summary>div{padding:14px}.roster-summary span{font-size:10px}.kit-layout{grid-template-columns:1fr 340px;gap:18px}.kit-showcase{padding:24px;min-height:580px}.kit-large-shirt .kit-shirt{width:210px;height:231px}.kit-showcase>.between{align-items:flex-start;gap:15px;flex-direction:column}.topbar .account .username{display:none}}
@media(max-width:760px){.kit-layout{grid-template-columns:1fr}.kit-showcase{min-height:490px}.kit-showcase>.between{flex-direction:row;align-items:center}.kit-large-shirt{padding:30px 20px 20px}.kit-large-shirt .kit-shirt{width:200px;height:220px}.kit-patterns .kit-shirt{width:47px;height:52px}.kit-patterns button{font-size:10px}.board-player .kit-shirt{width:36px;height:40px}.roster-tools{flex-wrap:wrap}.roster-summary{gap:9px}.topbar:not(.welcome-bar){flex-wrap:wrap;height:auto;min-height:100px;padding-top:14px;gap:10px 20px}.topbar:not(.welcome-bar) nav{order:3;width:100%;height:42px;justify-content:space-between;gap:14px}.topbar:not(.welcome-bar) nav a{font-size:12px}.topbar:not(.welcome-bar) .account{margin-left:auto}.roster-layout .table-wrap{margin-right:-3px}.page-head.between{flex-wrap:wrap}}
@media(max-width:500px){.board-player .kit-shirt{width:29px;height:32px}.roster-summary{grid-template-columns:1fr 1fr}.roster-summary>div{padding:14px 16px}.roster-summary span{font-size:11px}.player-shirt-preview{width:130px;margin-right:18px;padding:18px 7px 12px}.player-shirt-preview .kit-shirt{width:80px;height:88px}.player-detail h2{font-size:23px}.player-shirt-preview .pill{font-size:8px}.roster-tools{gap:14px}.sort-label{justify-content:space-between;width:100%}.sort-label .input{max-width:190px}.kit-controls{padding:22px}.kit-showcase{padding:24px;min-height:470px}.kit-showcase .pill{max-width:145px;font-size:9px}.kit-color>span{font-size:11px}}

/* Nationality belongs to players, independently of their club. */
.substitutions-panel{display:flex;flex-direction:column;gap:12px}.substitutions-panel[hidden]{display:none}.substitutions-panel .section-head{margin-bottom:0}.substitutions-auto{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:700}.substitutions-auto input{accent-color:#267d4b}.substitution-list{display:grid;gap:8px}.substitution-row{border:1px solid var(--line);border-radius:8px;padding:9px;display:grid;grid-template-columns:1fr 1fr;gap:7px}.substitution-row label{min-width:0}.substitution-row label:nth-child(3){grid-column:1 / 3}.substitution-row label span{display:block;color:var(--muted);font-size:10px;margin-bottom:4px}.substitution-row .input{min-height:34px;padding:5px;font-size:11px}.substitution-row .text-btn{grid-column:1 / 3;justify-self:end;padding:3px 5px}.board-side-tabs button{min-width:0}
.player-flag{display:inline-block;flex-shrink:0;font-size:15px;line-height:1;vertical-align:middle;letter-spacing:0}.full-roster .roster-name{display:inline-flex;align-items:center;gap:8px}.player-caption .player-flag{font-size:11px;text-shadow:none}.selected-name .player-flag{margin-right:4px}.player-shirt-preview .player-flag{font-size:14px}.goal-chip .player-flag{font-size:12px}.welcome-copy h1{font-size:clamp(30px,5.2vw,64px)}

/* Friendly match lobby */
.friendly-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:24px;align-items:start}.friendly-row{display:flex;align-items:center;gap:16px;padding:20px 0;border-top:1px solid var(--line)}.friendly-row:first-child{border-top:0}.friendly-shirt{background:#edf0e6;border-radius:10px;width:58px;height:65px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.friendly-shirt .kit-shirt{width:37px;height:41px}.friendly-club{flex:1;min-width:0}.friendly-club h3{font-size:16px;overflow-wrap:anywhere}.friendly-club p{font-size:12px;color:var(--muted);margin-top:5px}.friendly-entry h2{font-size:22px}.friendly-entry p,.friendly-rules p{font-size:12px;color:var(--muted);margin:14px 0 20px}.friendly-rules p{margin-bottom:0}.friendly-entry .player-detail-link{margin-bottom:0}.empty .btn{margin-top:20px}
@media(max-width:900px){.friendly-layout{grid-template-columns:minmax(0,1fr) 280px;gap:18px}.topbar{gap:24px}.topbar nav{gap:18px}}
@media(max-width:760px){.friendly-layout{display:flex;flex-direction:column-reverse}.friendly-layout>section,.friendly-layout>aside{width:100%}.friendly-rules{display:none}.topbar:not(.welcome-bar) nav{gap:10px}.topbar:not(.welcome-bar) nav a{font-size:11px}}
@media(max-width:420px){.friendly-row{gap:10px;flex-wrap:wrap}.friendly-club h3{font-size:14px}.friendly-row>.btn{margin-left:68px}.friendly-shirt{width:48px;height:56px}.friendly-club p{font-size:11px}}

/* Empty formation slots and the reserve drop area. */
.board-toolbar{flex-wrap:wrap;justify-content:flex-start}.board-toolbar .input{margin-right:auto}.empty-player{cursor:default}.empty-player .player-caption{color:#a6b5a8}.empty-shirt{filter:none}.bench-return{padding:9px 4px;margin-bottom:8px;border:1px dashed #a5b39e;border-radius:7px;color:#64765a;text-align:center;font-size:11px}.is-dragging .bench-return{background:#e4ebda;border-color:#668b58}.bench-grid{max-height:clamp(340px,calc(100dvh - 280px),530px);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;padding:2px}.board-panel .board-toolbar .btn{white-space:nowrap}

/* Detailed roles and permanent out-of-position warnings. */
.board-slot .slot-role{display:block;font-size:8px;color:#c5d6c8;border:1px solid #65836966;line-height:10px;padding:1px 4px;top:-9px}.board-player[data-position-fit=poor] .kit-shirt>path[fill="none"]{stroke:#ff5555;stroke-opacity:1;stroke-width:7;stroke-linejoin:round}.board-player[data-position-fit=poor] .kit-shirt{filter:drop-shadow(0 0 2px #ff3b3b)}
.position-badges{display:inline-flex;gap:4px;align-items:center;white-space:nowrap}.position-badge{display:inline-flex;align-items:center;gap:9px;padding:4px 6px;border-radius:5px;font-size:10px;font-weight:700;border:1px solid transparent}.proficiency-excellent{color:#175b27;background:#cff6d7;border-color:#78e68a}.proficiency-good{color:#fff;background:#267d4b;border-color:#267d4b}.proficiency-fair{color:#786008;background:#fff1b5;border-color:#e7cc5d}.proficiency-poor{color:#a12f2f;background:#ffe0df;border-color:#ff8a85}.position-badges.full{display:flex;flex-direction:column;align-items:stretch;gap:5px;margin-top:12px;white-space:normal}.position-badges.full .position-badge{justify-content:space-between;font-weight:400;line-height:1.35;padding:6px 8px;gap:8px}.position-badge b{font-size:9px;white-space:nowrap}.board-player-tooltip{width:250px;padding:10px}.board-player-tooltip strong{font-size:12px;line-height:1.3}.board-player-tooltip p{margin-top:3px;line-height:1.3}.board-player-tooltip dl{gap:5px 12px;margin-top:8px}.board-player-tooltip .position-badges.full{gap:3px;margin-top:7px}.board-player-tooltip .position-badges.full .position-badge{padding:4px 6px}.board-player-tooltip .tooltip-fit{padding:5px 6px;border:1px solid;margin-top:8px;border-radius:5px;font-size:10px}.board-player-tooltip .tooltip-fit.proficiency-good{color:#fff}.player-shirt-preview .pill{white-space:normal;text-align:center;line-height:1.4}.full-roster td:nth-child(3){min-width:112px}.position-legend{gap:8px;font-size:9px}

/* A single grid covers every role, regardless of the selected formation preset. */
.board-slot.extra-slot{display:none}.is-dragging .board-slot.extra-slot{display:block}.is-dragging .board-slot{height:clamp(38px,calc((100dvh - 300px)*.135),62px);width:17%;max-width:80px;border-radius:5px}.is-dragging .board-slot .slot-role{top:3px;left:5px;transform:none;background:transparent;border:0;padding:0;font-size:10px;line-height:12px;color:var(--fit);z-index:3}.is-dragging .board-slot .player-caption{display:none}.is-dragging .board-slot .kit-shirt{width:23px;height:25px;opacity:.45}.is-dragging .board-slot .empty-player{visibility:hidden}.is-dragging .board-slot .board-player{padding-top:12px}.is-dragging .board-slot.drop-hover{background:var(--fit-bg);box-shadow:inset 0 0 0 2px var(--fit),0 0 0 2px var(--fit)}.board-toolbar .input{width:auto;min-width:85px;max-width:170px}.board-slot{height:62px}.board-player .player-caption small{line-height:11px}.board-slot .slot-role{top:-7px}
@media(max-width:600px){.board-slot{height:51px}.board-page .board-player .kit-shirt{width:23px;height:25px}.board-slot .slot-role{font-size:7px;top:-5px}.is-dragging .board-slot .slot-role{font-size:8px;left:3px}.board-toolbar .input{min-width:64px;max-width:130px}.is-dragging .board-slot{width:18%;height:38px}}

#tactical-editor:not(.is-dragging) .board-slot{border-color:#b7cbb566;border-radius:5px;background:#19312626}
#tactical-editor:not(.is-dragging) .board-slot .slot-role{top:3px;left:5px;transform:none;z-index:3;padding:0;border:0;border-radius:0;background:transparent;color:#dbe8d7;font-size:10px;line-height:12px;white-space:nowrap}
@media(max-width:600px){#tactical-editor:not(.is-dragging) .board-slot .slot-role{top:2px;left:3px;font-size:8px;line-height:10px}}
