:root{--card-aspect-ratio:1.1;--card-width-scale:0.01vw;--card-height-scale:0.01vh}body{background-color:#f5f5f5;font-family:Arial,sans-serif;font-size:16px;margin:0;padding:1.25rem}@media(max-width:768px){body{font-size:14px;padding:.625rem}}.matches-container{display:grid;gap:2rem;grid-template-columns:repeat(3,1fr);margin:0 auto;max-width:1400px;padding:0 1rem}@media(max-width:1200px){.matches-container{gap:1.5rem;grid-template-columns:repeat(2,1fr);padding:0 .75rem}}@media(max-width:450px){.matches-container{gap:1rem;grid-template-columns:1fr;padding:0 .5rem}}.match-simple{aspect-ratio:11/10;background:#fff;border:3px solid #2d5a27;border-radius:.5rem;box-sizing:border-box;display:flex;flex-direction:column;margin-bottom:0;overflow:hidden;position:relative;width:100%}.match-header-simple{align-items:center;background-color:#4caf50;border-bottom:.125em solid #2d5a27;box-sizing:border-box;display:flex;flex:0 0 6%;justify-content:space-between;padding:.5rem 1rem}.match-number{color:#fff;font-weight:700}.match-status{color:#fff;font-weight:400}.match-body-simple{background-color:#fff;flex:1;flex-direction:column;overflow:hidden}.match-body-simple,.match-teams{box-sizing:border-box;display:flex;padding:0;position:relative}.match-teams{align-items:stretch;background-color:#f8f9fa;border-radius:.5rem;margin:0;width:100%;z-index:1}.team{align-items:flex-start;display:flex;height:100%;justify-content:flex-start;overflow:hidden;position:relative;width:50%}.team:before{background-image:url(https://www.federvolley.it/sites/default/files/logo-FIPAV-sfondo-bianco.svg);background-position:50%;background-repeat:no-repeat;background-size:cover;bottom:0;content:"";left:0;min-height:6vh;-o-object-fit:cover;object-fit:cover;opacity:.1;position:absolute;right:0;top:0;z-index:1}.team:before:first-of-type{transform:skewX(25deg)}.team:before:last-of-type{transform:skewX(-25deg)}.team-info{display:flex;flex:1;flex-direction:column;height:100%;justify-content:space-between;position:relative;z-index:2}.team:first-of-type .team-name{padding-left:1.2em}.team:last-of-type .team-name{padding-right:1.2em}.team-name{color:#163f77;display:-webkit-box;font-weight:700;-webkit-line-clamp:2;margin-bottom:.125rem;padding-top:.5em;-webkit-box-orient:vertical;flex-shrink:0;line-height:1.2;overflow:hidden}.team-score{flex:1;min-height:0;width:100%}.team-score,.team-score span{align-items:center;display:flex;justify-content:center}.team-score span{background-color:#2d5a27;border-radius:.25em;box-shadow:0 .25em .5em rgba(0,0,0,.2);color:#fff;flex-shrink:0;font-size:1.1em;font-weight:700;height:2em;width:2em}.vs-separator{align-self:center;color:#666;font-weight:700;margin:0 .25rem}.sets-table{flex-direction:column;height:100%;margin:5% 0 -5%;overflow:hidden;position:relative;top:-13%;z-index:5}.sets-header,.sets-table{box-sizing:border-box;display:flex}.sets-header{border-bottom:2px solid #163f77;flex:0 0 30%;flex-direction:column;margin:0;padding:0}.sets-row{box-sizing:border-box;flex:1;padding:2% 0}.sets-title{color:#163f77;font-weight:700;letter-spacing:.2em;margin-bottom:.3rem;text-align:center;text-transform:uppercase}.sets-numbers{align-items:center;display:flex;height:1.2em;justify-content:space-between}.set-number,.set-score{color:#163f77;flex:1;font-weight:700;text-align:center}.set-score,.set-score.win span{align-items:center;display:flex;justify-content:center}.set-score.win span{background-color:#2d5a27;border-radius:.25em;box-shadow:0 .125em .25em rgba(0,0,0,.1);color:#fff;font-size:1.2em;height:2.5em;margin:0 auto;width:2.5em}.sets-row{border-bottom:1px solid #eee;display:flex;justify-content:space-between;padding:.4em 0}.sets-row.team-a{background-color:#f8f9fa}.sets-row.team-b{background-color:#fff}.match-body-footer{background-color:#e3f2fd;border-radius:.5rem .5rem 0 0;display:flex;flex-direction:column;justify-content:center;margin:0;padding:1%;text-align:center}.match-datetime{color:#163f77;font-size:.8em;font-weight:700}.match-datetime:after{content:"🕐 18:00 - 📅 15 Novembre 2025"}.date-info,.date-label,.date-value,.time-info,.time-label,.time-value{display:none}.match-upcoming .match-body-footer{background-color:#fff3cd;border:2px solid #f39c12}.match-upcoming .match-datetime{align-items:center;color:#f39c12;display:flex;font-size:1.25rem;font-weight:700;gap:4rem;justify-content:center}.match-upcoming .date-info,.match-upcoming .time-info{align-items:center;display:flex!important;flex-direction:column;gap:.25rem;width:6rem}.match-upcoming .date-label,.match-upcoming .time-label{color:#666;display:block!important;font-size:.75rem;font-weight:400;letter-spacing:.1em;text-transform:uppercase}.match-upcoming .date-value,.match-upcoming .time-value{color:#f39c12;display:block!important;font-size:1.5rem;font-weight:700}.match-upcoming .match-datetime:after{display:none}.match-footer-simple{align-items:center;background-color:#2d5a27;border-top:none;box-sizing:border-box;color:#fff;display:flex;flex:0 0 8%;justify-content:space-between;padding:.5rem 1rem}.footer-info{display:flex;flex-direction:column;gap:.2rem}.venue-info{align-items:center;display:flex;gap:.3rem}.venue-text{display:flex;flex-direction:column;gap:.1rem}.match-venue{color:#fff;font-weight:700}.match-address{color:#fff}.footer-icons{display:flex;gap:.3rem}.footer-icon{align-items:center;background-color:#0063b0;border-radius:.2em;color:#fff;cursor:pointer;display:flex;justify-content:center;transition:background-color .2s ease}.footer-icon:hover{background-color:#0056a0}.footer-icon.stadium-icon{background-color:#0063b0}.footer-icon.stadium-icon:hover{background-color:rgba(0,99,176,.1)}.match-toggle-btn{background-color:#163f77;border:none;border-radius:.5rem;box-shadow:0 .25rem .5rem rgba(0,0,0,.2);color:#fff;cursor:pointer;font-size:1rem;font-weight:700;padding:.75rem 1.5rem;transition:all .3s ease}.match-toggle-btn:hover{background-color:#0d2a50;box-shadow:0 .375rem .75rem rgba(0,0,0,.3);transform:translateY(-2px)}.match-toggle-btn.upcoming-mode{background-color:#f39c12}.match-toggle-btn.upcoming-mode:hover{background-color:#e67e22}.match-upcoming .set-score span:not(.total),.match-upcoming .set-score.total,.match-upcoming .set-score.win span,.match-upcoming .sets-table,.match-upcoming .team-score span{display:none!important}.match-upcoming .match-teams{flex:2!important;margin-bottom:1.25rem!important}.match-upcoming .match-body-footer{flex:1!important;margin-top:0!important}.placeholder{color:#999;font-style:italic;margin:3.125rem 0;text-align:center}.formation-btn{align-items:center;background-color:#163f77;border:none;border-radius:50%;box-shadow:0 .25rem .5rem rgba(0,0,0,.2);color:#fff;cursor:pointer;display:flex;font-size:1.2rem;height:2.5rem;justify-content:center;position:absolute;top:50%;transform:translateY(-50%);transition:all .3s ease;width:2.5rem;z-index:10}.formation-btn:hover{background-color:#0d2a50;transform:translateY(-50%) scale(1.1)}.formation-btn.left-btn{left:-1.25rem}.formation-btn.right-btn{right:-1.25rem}.formation-panel{border:2px solid #163f77;box-shadow:0 .5rem 1rem rgba(0,0,0,.3);display:flex;flex-direction:column;height:100%;left:0;overflow:hidden;position:absolute;top:0;transform:translateX(-100%);transition:transform .4s ease;width:18rem;z-index:50}.formation-panel.left-panel{border-radius:0 .5em 0 0}.formation-panel.right-panel{border-radius:.5em 0 0 0}.formation-panel:before{background-image:url(https://www.federvolley.it/sites/default/files/logo-FIPAV-sfondo-bianco.svg);background-position:50%;background-repeat:no-repeat;background-size:cover;opacity:.4;z-index:1}.formation-panel:after,.formation-panel:before{border-radius:.5rem;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.formation-panel:after{background-color:hsla(0,0%,100%,.85);z-index:2}.formation-panel.right-panel{left:auto;right:0;transform:translateX(100%)}.formation-panel.open{transform:translateX(0)}.formation-header{align-items:center;background-color:#163f77;color:#fff;display:flex;flex-shrink:0;justify-content:space-between;padding:.75rem 1rem;position:relative;z-index:10}.formation-header h3{font-size:1rem;font-weight:700;letter-spacing:.1em;margin:0;text-transform:uppercase}.close-btn{background:none;border:none;border-radius:.25rem;color:#fff;cursor:pointer;font-size:1.5rem;padding:.25rem;transition:background-color .2s ease}.close-btn:hover{background-color:hsla(0,0%,100%,.2)}.formation-content{display:flex;flex:1;flex-direction:column;gap:1rem;overflow-y:scroll;padding:1rem;z-index:3}.coaches-section h4,.players-section h4{border-bottom:1px solid #eee;color:#163f77;font-size:.9rem;font-weight:700;letter-spacing:.05em;margin:0 0 .5rem;padding-bottom:.25rem;text-transform:uppercase}.coaches-list,.players-list{display:flex;flex-direction:column;gap:.25rem}.coach-item,.player-item{align-items:center;background-color:#f8f9fa;border-left:3px solid #163f77;border-radius:.25rem;color:#333;display:flex;font-size:.8rem;gap:.5rem;padding:.375rem .5rem}.coach-item{background-color:#e3f2fd;border-left-color:#0063b0}.player-number{align-items:center;background-color:#163f77;border-radius:.25rem;color:#fff;display:flex;flex-shrink:0;font-size:.7rem;font-weight:700;height:1.5rem;justify-content:center;width:1.5rem}.player-number.libero{background-color:#ff9800}.player-item.captain{border-color:#f44336;border-left-width:4px}.player-name{flex:1;line-height:1.2}@media(max-width:768px){.match-body-footer{margin-top:1em;padding:.75em}.match-datetime{font-size:.875em}.match-footer-simple{gap:.25em}.footer-info span{font-size:.8125em}.footer-icon{font-size:.875em;height:1.75em;width:1.75em}.footer-icons{gap:.375em}.placeholder{margin:2.5em 0}.formation-panel{width:15rem}.formation-btn{font-size:1rem;height:2rem;width:2rem}.formation-btn.left-btn{left:-1rem}.formation-btn.right-btn{right:-1rem}}
