.plr-container,.plr-matches-container,.plr-team-stats-container,.plr-league-table-container{margin-bottom:2rem}.plr-table-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:2px solid var(--plr-border-color,#dddddd);gap:2rem}.plr-season-title h2{margin:0;font-size:3rem;font-weight:600;color:var(--plr-table-color,#333333)}.plr-season-selector{display:flex;align-items:center;gap:.5rem}.plr-season-selector label{font-weight:500;color:var(--plr-table-color,#333333);margin:0;white-space:nowrap}.plr-season-dropdown{padding:.5rem;border:1px solid var(--plr-border-color,#dddddd);border-radius:4px;background-color:var(--plr-table-bg,#ffffff);color:var(--plr-table-color,#333333);font-family:var(--plr-font-family,Arial,sans-serif);font-size:var(--plr-font-size,14px);min-width:130px;cursor:pointer}.plr-season-dropdown:focus{outline:2px solid #0073aa;outline-offset:2px}.plr-settings-main{padding:2rem}.plr-error{background-color:#ffebee;border:1px solid #f44336;border-radius:4px;color:#c62828;padding:1rem;margin:1rem 0}.plr-no-data{background-color:#f5f5f5;border:1px solid #ddd;border-radius:4px;padding:2rem;text-align:center;color:#666}.plr-table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch;margin-bottom:1rem}.plr-table-responsive table{width:100%;border-collapse:collapse;border-spacing:0;background-color:#fff;border:1px solid #ddd}.plr-matches-list{list-style:none;padding:0;margin:0;background-color:var(--plr-table-bg,#ffffff)}.plr-matches-list li{border-bottom:1px solid #e5e7eb}.plr-matches-list li:last-child{border-bottom:none}.plr-match-item{padding:1rem;transition:background-color 0.2s ease}.plr-match-item:hover{background-color:var(--plr-hover-bg,#f8f9fa)}.plr-match-content{display:flex;align-items:center;gap:1.5rem;min-height:80px}@media (max-width:768px){.plr-match-content{gap:1rem}}.plr-team-logos{display:flex;gap:.5rem;flex-shrink:0}.plr-team-logos img{width:64px;height:64px;object-fit:contain;background-color:#fff0;border:none}.plr-match-info{flex:1;min-width:0}.plr-match-round{font-size:calc(var(--plr-font-size, 14px) * 0.8);color:#6b7280;margin-bottom:.25rem;font-weight:500}.plr-match-teams{font-size:var(--plr-font-size,14px);line-height:1.2;margin:0;font-weight:600;color:#374151}.plr-match-teams .plr-team-separator{color:#9ca3af;margin:0 .5rem}.plr-home-team{color:#374151}.plr-away-team{color:#6b7280}.plr-winner{color:#16a34a!important;font-weight:700}.plr-loser{color:#dc2626!important;font-weight:500}.plr-player-stats-table{width:100%;border-collapse:collapse;margin-bottom:1rem}.plr-player-stats-table th,.plr-player-stats-table td{padding:.75rem;text-align:left;border-bottom:1px solid var(--plr-border-color,#dddddd)}.plr-player-stats-table th{background-color:var(--plr-header-bg,#2c3e50);color:var(--plr-header-color,#ffffff);font-weight:var(--plr-header-font-weight,600);font-size:var(--plr-header-font-size,14px);position:sticky;top:0;z-index:10}.plr-player-stats-table th:hover{background-color:var(--plr-header-hover-bg,#3c5e70)}.plr-player-stats-table tbody tr:hover{background-color:var(--plr-hover-bg,#e8f4f8)}.plr-player-name{min-width:200px;max-width:250px}.plr-position{width:60px;text-align:center}.plr-games,.plr-goals,.plr-assists,.plr-points,.plr-penalty-minutes{width:60px;text-align:center}.plr-player-info{display:flex;align-items:center;gap:.5rem}.plr-player-fullname{font-weight:500;flex:1}.plr-jersey-number{background-color:var(--plr-header-bg,#2c3e50);color:var(--plr-header-color,#ffffff);padding:.125rem .375rem;border-radius:.25rem;font-size:.75rem;font-weight:600}.plr-position-badge{background-color:#6b7280;color:#fff;padding:.125rem .375rem;border-radius:.25rem;font-size:.75rem;font-weight:600;display:inline-block;min-width:2rem;text-align:center}.plr-loading-overlay{position:relative}.plr-loading-overlay::before{content:'';position:absolute;top:0;left:0;right:0;bottom:0;background:rgb(255 255 255 / .8);display:flex;align-items:center;justify-content:center;z-index:10}.plr-loading-overlay::after{content:'';position:absolute;top:50%;left:50%;width:40px;height:40px;margin:-20px 0 0 -20px;border:4px solid #f3f3f3;border-top:4px solid #2c3e50;border-radius:50%;animation:plr-spin 1s linear infinite;z-index:11}@keyframes plr-spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}.loading{position:relative;opacity:.6;pointer-events:none}.plr-player-info{display:flex;align-items:center;gap:0.5rem!important}.plr-player-fullname{flex:1;min-width:0}.plr-jersey-number{background-color:var(--plr-header-bg,#2c3e50);color:var(--plr-header-color,#ffffff);padding:.125rem .375rem;border-radius:.25rem;font-size:.75rem;font-weight:600;white-space:nowrap;flex-shrink:0;margin-left:.25rem}@media (max-width:768px){.plr-player-stats-table{font-size:.875rem}.plr-player-stats-table th,.plr-player-stats-table td{padding:.5rem .25rem}.plr-player-name{min-width:150px;max-width:200px}.plr-player-info{flex-direction:column;align-items:flex-start;gap:0.25rem!important}}.plr-match-score{display:flex;align-items:center;justify-content:flex-end;flex-shrink:0}.plr-score-box,.plr-date-box{padding:.75rem 1.25rem;border-radius:8px;text-align:center;min-width:110px}.plr-score-box{background-color:#10b981;color:#fff;border:none;font-weight:700;font-size:1.5rem}.plr-date-box{background-color:#fff0;color:#9ca3af;border:2px solid #e5e7eb;font-weight:500;font-size:1rem}.plr-score-text{font-size:1.5rem;white-space:nowrap;font-weight:700}.plr-date-text{font-size:1rem;white-space:nowrap;font-weight:500}.plr-matches-slider-container{position:relative;margin:2rem 0}.plr-slider-wrapper{overflow:hidden;position:relative}.plr-slider-track{display:flex;gap:1rem;transition:transform 0.3s ease-in-out}.plr-slider-item{flex:0 0 calc(33.333% - 0.667rem);min-width:280px}@media (max-width:768px){.plr-slider-item{flex:0 0 100%}}@media (min-width:769px) and (max-width:1024px){.plr-slider-item{flex:0 0 calc(50% - 0.5rem)}}.plr-match-card{background-color:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:1.5rem;text-align:center;transition:box-shadow 0.2s ease}.plr-match-card:hover{box-shadow:0 4px 6px rgb(0 0 0 / .1)}.plr-match-card-header{margin-bottom:1rem}.plr-match-label{font-size:.75rem;color:#6b7280;text-transform:uppercase;font-weight:500}.plr-match-card-logos{display:flex;justify-content:center;align-items:center;gap:1rem;margin-bottom:1rem}.plr-card-logo{width:4rem;height:4rem;object-fit:contain;border-radius:50%}.plr-match-card-content{margin-bottom:1rem}.plr-card-team{display:flex;justify-content:space-between;align-items:center;padding:.5rem 0;border-bottom:1px solid #f3f4f6}.plr-card-team:last-child{border-bottom:none}.plr-card-team-name{font-weight:600;color:#1e40af;font-size:.9rem}.plr-card-away .plr-card-team-name{color:#6b7280}.plr-card-score{font-size:1.25rem;font-weight:700;color:#ef4444}.plr-match-card-footer{display:flex;justify-content:center;align-items:center;gap:.5rem;flex-wrap:wrap}.plr-card-datetime{font-size:.875rem;color:#374151;font-weight:600}.plr-card-link{font-size:.75rem;color:#2563eb;text-decoration:underline;transition:color 0.2s ease}.plr-card-link:hover{color:#1d4ed8}.plr-slider-nav{position:absolute;top:50%;transform:translateY(-50%);background-color:#fff;border:2px solid #e5e7eb;border-radius:50%;width:3rem;height:3rem;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all 0.2s ease;z-index:10}.plr-slider-nav:hover{background-color:#f3f4f6;border-color:#d1d5db}.plr-slider-nav:disabled{opacity:.3;cursor:not-allowed}.plr-slider-prev{left:-1.5rem}.plr-slider-next{right:-1.5rem}.plr-slider-nav svg{width:1.5rem;height:1.5rem;color:#374151}@media (max-width:768px){.plr-slider-prev{left:0}.plr-slider-next{right:0}}.plr-matches-table{font-size:var(--plr-font-size,14px)}.plr-matches-table th,.plr-matches-table td{padding:.75rem;text-align:left;border-bottom:1px solid #eee}.plr-matches-table th{background-color:#f8f9fa;font-weight:600;color:#333;position:sticky;top:0;z-index:1}.plr-matches-table th.plr-date,.plr-matches-table td.plr-date{width:15%}.plr-matches-table th.plr-time,.plr-matches-table td.plr-time{width:10%}.plr-matches-table th.plr-home-team,.plr-matches-table th.plr-away-team,.plr-matches-table td.plr-home-team,.plr-matches-table td.plr-away-team{width:25%}.plr-matches-table th.plr-score,.plr-matches-table td.plr-score{width:10%;text-align:center}.plr-matches-table th.plr-status,.plr-matches-table td.plr-status{width:15%}.plr-matches-table tbody tr:hover{background-color:#f8f9fa}.plr-matches-table tbody tr:last-child td{border-bottom:none}.plr-team-name{font-weight:500}.plr-team-short{display:block;font-size:.8em;color:#666;margin-top:.25rem}.plr-score-main{font-weight:600;font-size:1.1em}.plr-match-status{display:inline-block;padding:.25rem .5rem;border-radius:12px;font-size:.75rem;font-weight:500;text-transform:uppercase;letter-spacing:.5px}.plr-status-before-match{background-color:#e3f2fd;color:#1976d2}.plr-status-1st-period,.plr-status-2nd-period,.plr-status-3rd-period{background-color:#fff3e0;color:#f57c00}.plr-status-1st-intermission,.plr-status-2nd-intermission,.plr-status-3rd-intermission{background-color:#f3e5f5;color:#7b1fa2}.plr-status-overtime{background-color:#e8f5e8;color:#388e3c}.plr-status-shootout{background-color:#fce4ec;color:#c2185b}.plr-status-end-of-game,.plr-status-end-after-overtime,.plr-status-end-after-shootout{background-color:#e8f5e8;color:#2e7d32}.plr-status-not-finished{background-color:#fafafa;color:#616161}.plr-season-info{text-align:center;margin-top:1rem;color:#666}.plr-team-stats-table{font-size:var(--plr-font-size,14px)}.plr-team-stats-table th,.plr-team-stats-table td{padding:1rem .75rem;text-align:left;border-bottom:1px solid #eee}.plr-team-stats-table th{background-color:#f8f9fa;font-weight:600;color:#333}.plr-team-stats-table tbody tr:hover{background-color:#f8f9fa}.plr-team-stats-table tbody tr:last-child td{border-bottom:none}.plr-stat-value{font-weight:600;font-size:1.1em}.plr-rank-badge{display:inline-block;background-color:#2196f3;color:#fff;padding:.25rem .5rem;border-radius:12px;font-size:.8em;font-weight:500}.plr-no-rank{color:#999}.plr-form-indicators{display:flex;gap:.25rem;align-items:center}.plr-form-indicator{display:inline-block;width:24px;height:24px;border-radius:50%;text-align:center;line-height:24px;font-size:.8em;font-weight:600}.plr-form-w{background-color:#4caf50;color:#fff}.plr-form-d{background-color:#ff9800;color:#fff}.plr-form-l{background-color:#f44336;color:#fff}.plr-team-name-header{text-align:center;margin-bottom:1.5rem}.plr-team-name-header h3{margin:0;color:#333;font-size:1.5rem}.plr-league-table{font-size:var(--plr-font-size,14px);border-collapse:collapse;width:100%}.plr-league-table th,.plr-league-table td{padding:.75rem;text-align:left;border-bottom:1px solid #ddd}.plr-league-table,.plr-matches-table,.plr-team-stats-table{background-color:var(--plr-table-bg,#ffffff);color:var(--plr-table-color,#333333);font-family:var(--plr-font-family,Arial,sans-serif);font-size:var(--plr-font-size,14px)}.plr-league-table th,.plr-matches-table th,.plr-team-stats-table th{background-color:var(--plr-header-bg,#2c3e50);color:var(--plr-header-color,#ffffff);font-weight:var(--plr-header-font-weight,600);font-size:var(--plr-header-font-size,14px);position:sticky;top:0;z-index:1;border:none}.plr-league-table td,.plr-matches-table td,.plr-team-stats-table td{border-color:var(--plr-border-color,#dddddd)}.plr-league-table tbody tr:nth-child(even),.plr-matches-table tbody tr:nth-child(even),.plr-team-stats-table tbody tr:nth-child(even){background-color:var(--plr-even-row-bg,#f8f9fa)}.plr-league-table tbody tr:hover,.plr-matches-table tbody tr:hover,.plr-team-stats-table tbody tr:hover{background-color:var(--plr-hover-bg,#e8f4f8)}.plr-league-table th[data-sort]{cursor:pointer;user-select:none}.plr-league-table th[data-sort]:hover{background-color:var(--plr-header-hover-bg,#3c5e70)}.plr-league-table th[data-sort]::after{content:' ⇅';font-size:.8em;opacity:.5}.plr-league-table tbody tr:hover{background-color:#f8f9fa}.plr-league-table tbody tr:last-child td{border-bottom:none}.plr-position{width:5%;text-align:center}.plr-position-number{display:inline-block;width:24px;height:24px;background-color:#2196f3;color:#fff;border-radius:50%;text-align:center;line-height:24px;font-weight:600;font-size:.9em}.plr-team{width:30%}.plr-team-info{display:flex;align-items:center;gap:.75rem}.plr-team-logo{flex-shrink:0}.plr-team-logo-img{width:32px;height:32px;object-fit:contain}.plr-team-name{font-weight:500;margin:0}.plr-games,.plr-wins,.plr-overtime-wins,.plr-draws,.plr-overtime-losses,.plr-losses,.plr-points{width:6%;text-align:center}.plr-goals{width:10%;text-align:center}.plr-goal-diff{width:8%;text-align:center}.plr-team{width:25%}.plr-points-value{font-size:1.1em}.plr-goal-diff.positive{color:#2e7d32;font-weight:600}.plr-goal-diff.negative{color:#c62828;font-weight:600}.plr-goal-diff.zero{color:#666}.plr-table-legend{margin-top:1rem;text-align:center;color:#666;font-style:italic}@media (max-width:768px){.plr-table-header{flex-direction:column;align-items:stretch;gap:1rem}.plr-season-title h2{font-size:1.2rem;margin:0}.plr-season-selector{display:flex;flex-direction:column;align-items:flex-start;width:100%}.plr-season-selector label{display:block;margin-bottom:.5rem;font-weight:600}.plr-season-dropdown{width:100%;max-width:none}.plr-match-content{flex-wrap:wrap;gap:.75rem}.plr-team-logos{order:1;justify-content:center}.plr-match-info{order:2;text-align:center;min-width:100%}.plr-match-score{order:3;justify-content:center}.plr-match-teams{font-size:calc(var(--plr-font-size, 14px) * 0.9)}.plr-score-box,.plr-date-box{font-size:1rem;padding:.5rem .75rem;min-width:70px}.plr-link-icon{font-size:.7rem;padding:.2rem .4rem}}@media (min-width:768px){.plr-matches-table,.plr-team-stats-table,.plr-league-table{font-size:var(--plr-font-size,14px)}.plr-matches-table th,.plr-matches-table td,.plr-team-stats-table th,.plr-team-stats-table td,.plr-league-table th,.plr-league-table td{padding:1rem}.plr-team-short{display:inline;margin-top:0;margin-left:.5rem}.plr-date-mobile{display:none}.plr-date-full{display:block}}@media (min-width:1024px){.plr-table-responsive{overflow-x:visible}.plr-matches-table th.plr-date,.plr-matches-table td.plr-date{width:12%}.plr-matches-table th.plr-time,.plr-matches-table td.plr-time{width:8%}.plr-matches-table th.plr-home-team,.plr-matches-table th.plr-away-team,.plr-matches-table td.plr-home-team,.plr-matches-table td.plr-away-team{width:22%}.plr-matches-table th.plr-score,.plr-matches-table td.plr-score{width:8%}.plr-matches-table th.plr-status,.plr-matches-table td.plr-status{width:20%}}@media print{.plr-table-responsive{overflow-x:visible}.plr-matches-table,.plr-team-stats-table,.plr-league-table{box-shadow:none;border:1px solid #ddd}.plr-matches-table th,.plr-team-stats-table th,.plr-league-table th{background-color:#f5f5f5!important;color:#333!important}}@media (prefers-reduced-motion:reduce){.plr-sortable-table{transition:none}}.plr-matches-table th:focus,.plr-team-stats-table th:focus,.plr-league-table th:focus{outline:2px solid #2196f3;outline-offset:2px}@media (prefers-contrast:high){.plr-matches-table,.plr-team-stats-table,.plr-league-table{border:2px solid #000}.plr-matches-table th,.plr-team-stats-table th,.plr-league-table th{border-bottom:2px solid #000}.plr-matches-table td,.plr-team-stats-table td,.plr-league-table td{border-bottom:1px solid #000}}