
.squad-section{padding-top:35px}.team-photo-holder{margin-bottom:50px}.team-photo{margin:0;background:#0a2b1d;border:1px solid #b7cab0}.team-photo img{width:100%;height:auto;display:block;aspect-ratio:1600/641;object-fit:contain}.team-photo figcaption{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:#d7e6cf;padding:15px 20px}.football-cover{background:#103a26 url('campo-futbol.svg') center/cover no-repeat;border-radius:0!important;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;min-height:380px}.football-cover:before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#062517dd,#06251744)}.football-cover .team-wordmark{max-width:650px;font-size:clamp(30px,5vw,65px)}.squad-section-head{align-items:center}.squad-season{font-size:13px;color:#536e48}.squad-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:25px 0 35px;flex-wrap:wrap}.squad-view-switch{display:flex;border:1px solid #afc5a3;padding:5px;gap:5px;background:#f1f6ed}.squad-view-switch button{padding:13px 20px;border:0;background:transparent;color:#0a3221;font:800 12px Arial;cursor:pointer}.squad-view-switch button[aria-pressed=true]{background:#0d3625;color:white;box-shadow:inset 0 -3px 0 #aa7bcc}.squad-filter-label{display:flex;align-items:center;gap:15px;font-size:12px;font-weight:bold}.squad-filter-label select{font:14px Arial;padding:12px;border:1px solid #a6bc9b;background:white;color:#153d29;cursor:pointer;max-width:100%}.squad-role-section{margin-bottom:45px}.squad-role-title{display:flex;align-items:center;gap:15px;border-bottom:1px solid #cbdcc1;padding-bottom:15px;margin-bottom:23px}.squad-role-title h3{font:clamp(25px,3vw,37px) Impact,Arial;margin:0;text-transform:uppercase;letter-spacing:.02em}.squad-role-title span{display:grid;place-items:center;width:28px;height:28px;background:#e5f1db;color:#264e2c;border-radius:50%;font-size:12px;font-weight:bold}.squad-card-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px}.squad-player-card{display:block;padding:0;position:relative;overflow:hidden;text-align:left;border:1px solid #c5d8b9;background:#f6f9f1;color:#0c3423;cursor:pointer;font:inherit;width:100%;transition:box-shadow .2s,translate .2s}.squad-player-card:hover{translate:0 -3px;box-shadow:0 10px 22px #0a34221c;border-color:#8861ac}.squad-card-visual{position:relative;aspect-ratio:1/1.05;background:radial-gradient(ellipse at 50% 30%,#e6efdb,#c8dcba);overflow:hidden;display:flex;align-items:flex-end;justify-content:center}.squad-card-visual:before{content:'';position:absolute;inset:12px;border:1px solid #6b93552b}.squad-card-visual>img{position:relative;width:100%;height:100%;object-fit:contain;object-position:bottom;z-index:1;display:block}.squad-avatar-placeholder{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;height:100%;gap:10px;background:linear-gradient(145deg,#eaf1e1,#d0dfc4)}.squad-avatar-placeholder img{width:75px;height:100px;object-fit:contain;opacity:.85}.squad-avatar-placeholder strong{font:clamp(50px,6vw,85px)/1 Impact,Arial;color:#3f7045;letter-spacing:-.03em}.squad-card-number{position:absolute;right:12px;top:10px;z-index:3;display:grid;place-items:center;background:#0c3423;color:white;min-width:40px;height:40px;padding:4px;font:bold 21px Arial;border:1px solid #d0e6c0}.squad-captain-badge{position:absolute;top:12px;left:12px;z-index:3;display:grid;place-items:center;width:34px;height:34px;background:#76479f;color:white;border:2px solid white;border-radius:50%;font:bold 18px Arial}.squad-card-copy{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:19px;border-top:3px solid #78a84b}.squad-card-copy h4{font-size:23px;line-height:1.15;margin:0;overflow-wrap:break-word}.squad-card-copy small{display:block;color:#526a48;font-size:10px;letter-spacing:.09em;margin-top:7px;text-transform:uppercase}.squad-card-copy>span{font-size:23px}.pitch-scroll{overflow-x:auto;max-width:100%;border:1px solid #86ad6d;scrollbar-color:#72a04d #e7efdf}.squad-pitch-board{position:relative;min-width:1000px;aspect-ratio:1000/660;background:#16492e url('campo-futbol.svg') center/100% 100% no-repeat}.pitch-role-columns{position:absolute;inset:40px 65px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:25px;align-items:center}.pitch-role{position:relative;align-self:stretch;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:30px 0 15px;min-width:0}.pitch-role>h4{position:absolute;top:-20px;left:0;right:0;text-align:center;color:#ecf5df;font-size:10px;letter-spacing:.12em;text-transform:uppercase;margin:0;font-weight:900}.pitch-role-players{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 9px;width:100%;justify-items:center}.pitch-role[data-position=goalkeeper] .pitch-role-players{grid-template-columns:1fr;gap:15px}.squad-marker{width:88px;position:relative;border:0;background:none;color:white;padding:0;font:800 12px Arial;cursor:pointer;text-align:center}.squad-marker-image{position:relative;width:50px;height:50px;margin:0 auto 6px;border:2px solid #f2f9e5;border-radius:50%;background:#e6efdb;overflow:hidden;display:flex;align-items:center;justify-content:center}.squad-marker-image>img{width:100%;height:100%;object-fit:cover;object-position:center 25%}.squad-marker-image>strong{font:27px Impact,Arial;color:#16442d}.squad-marker small{display:block;line-height:1.2;text-shadow:0 1px 4px #001c12}.squad-marker .marker-number{position:absolute;right:9px;top:-5px;z-index:2;min-width:22px;height:22px;padding:3px;background:#113421;color:white;border:1px solid white;font-size:11px;border-radius:3px}.squad-marker .marker-captain{position:absolute;left:8px;top:-5px;background:#76479f;color:white;width:21px;height:21px;padding:4px;font-size:10px;border-radius:50%;z-index:2}.squad-marker:hover .squad-marker-image{box-shadow:0 0 0 3px #bba1d6}.squad-player-dialog{border:1px solid #b3c9a2;background:#f4f8ef;color:#123b27;width:min(740px,94vw);padding:20px;max-height:92vh}.squad-player-dialog::backdrop{background:#001c15d9}.player-dialog-close{display:block;margin:0 0 15px auto;padding:9px 15px;background:#0d3625;color:white;border:0;cursor:pointer}.player-dialog-content{display:grid;grid-template-columns:1.1fr 1fr;gap:30px;align-items:center}.player-dialog-visual{background:radial-gradient(ellipse,#e2efd4,#c6dcba);min-height:300px;display:flex;justify-content:center;align-items:center}.player-dialog-visual>img{width:100%;height:auto;max-height:450px;object-fit:contain;display:block}.player-dialog-visual .squad-avatar-placeholder{min-height:350px}.player-dialog-role{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#526e46}.player-dialog-copy h2{font:clamp(35px,5vw,60px)/1.1 Impact,Arial;margin:15px 0;overflow-wrap:break-word}.player-dialog-number{font:bold 27px Arial;margin:15px 0}.player-dialog-captain{font-size:14px;display:flex;align-items:center;gap:10px;color:#75449f;font-weight:bold}.player-dialog-captain b{display:grid;place-items:center;width:30px;height:30px;background:#76479f;color:white;border-radius:50%}[hidden]{display:none!important}@media(max-width:1000px){.squad-card-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:700px){.squad-card-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.squad-card-copy{padding:14px}.squad-card-copy h4{font-size:21px}.squad-avatar-placeholder img{width:55px;height:75px}.squad-card-number{width:32px;height:32px;min-width:32px;font-size:17px;right:9px;top:9px}.squad-captain-badge{width:29px;height:29px;top:9px;left:9px;font-size:15px}.squad-toolbar{align-items:stretch;gap:15px}.squad-view-switch{flex:1;justify-content:center}.squad-view-switch button{flex:1;font-size:11px;padding:12px}.squad-filter-label{width:100%;justify-content:space-between}.squad-filter-label select{flex:1;max-width:240px}.team-photo-holder{margin-bottom:35px}.team-photo figcaption{padding:12px;font-size:10px}.player-dialog-content{grid-template-columns:1fr;gap:20px}.player-dialog-visual{min-height:0;max-height:45vh}.player-dialog-visual>img{max-height:45vh;width:auto;max-width:100%}.player-dialog-visual .squad-avatar-placeholder{min-height:210px}.player-dialog-copy h2{font-size:37px}.player-dialog-number{font-size:22px}.squad-section-head{display:block}.squad-section-head .btn{margin-top:10px}}@media(max-width:360px){.squad-card-copy h4{font-size:18px}.squad-card-copy{padding:11px}.squad-card-copy small{font-size:9px;letter-spacing:.02em}.squad-avatar-placeholder strong{font-size:55px}}@media(prefers-reduced-motion:reduce){.squad-player-card{transition:none}.squad-player-card:hover{translate:none}}

.team-photo img{width:100%;height:auto;aspect-ratio:auto;object-fit:contain;max-height:none}.player-dialog-visual{position:relative}.player-dialog-copy .player-dialog-captain{display:none!important}

/* Zonas amplias: todos los deportistas, sin asumir una alineación titular. */
.squad-pitch-board{min-width:1200px}
.pitch-role-columns{inset:0;display:block}
.pitch-role{position:absolute;display:block;padding:0;border:1px solid #e7f2dc55;border-radius:14px;background:#ffffff09;box-shadow:inset 0 0 35px #ffffff05}
.pitch-role[data-position=goalkeeper]{left:3.5%;top:25.76%;width:15.5%;height:48.48%;background:#d9f5d015}
.pitch-role[data-position=defender]{left:24%;top:12%;width:18%;height:76%;background:#ffffff0c}
.pitch-role[data-position=midfielder]{left:45%;top:8%;width:24%;height:84%;background:#a87cce23;border-color:#d9b8f477}
.pitch-role[data-position=forward]{left:74%;top:15%;width:22.5%;height:70%;background:#c7f17d15}
.pitch-role>h4{top:14px;font-size:12px;letter-spacing:.1em;text-shadow:0 2px 4px #052619}
.pitch-role-players{position:absolute;inset:40px 8px 18px;width:auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(3,minmax(0,1fr));gap:20px 12px;align-items:center;justify-items:center}
.pitch-role[data-position=goalkeeper] .pitch-role-players{grid-template-columns:1fr;grid-template-rows:repeat(3,minmax(0,1fr));gap:14px;inset:33px 8px 12px}
.pitch-role[data-position=midfielder] .pitch-role-players{grid-template-rows:repeat(4,minmax(0,1fr))}
.pitch-role[data-position=midfielder] .squad-marker:last-child:nth-child(odd){grid-column:1 / -1}
.squad-marker{width:96px}.squad-marker-image{width:56px;height:56px}.squad-marker small{font-size:12px}
