*{box-sizing:border-box;margin:0;padding:0}:root{--green-dark: #2d5a27;--green-main: #3d7a37;--green-light: #4a9442;--white: #ffffff;--gray-light: #f5f5f5;--gray: #e0e0e0;--gray-dark: #666666;--black: #1a1a1a;--red: #d32f2f;--gold: #ffc107;--silver: #90a4ae;--bronze: #cd7f32}html{font-size:16px}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;background:var(--gray-light);color:var(--black);line-height:1.5;min-height:100vh}.app{display:flex;flex-direction:column;min-height:100vh}.header{background:var(--green-dark);color:var(--white);padding:1rem;text-align:center;position:sticky;top:0;z-index:100}.header h1{font-size:1.25rem;font-weight:600}.main{flex:1;padding:1rem 1rem 5rem;max-width:600px;margin:0 auto;width:100%}.nav{position:fixed;bottom:0;left:0;right:0;background:var(--white);display:flex;justify-content:space-around;padding:.75rem 0;border-top:1px solid var(--gray);z-index:100}.nav a{color:var(--gray-dark);text-decoration:none;font-size:.875rem;font-weight:500;padding:.5rem 1rem;border-radius:.5rem;transition:all .2s}.nav a.active{color:var(--green-main);background:#3d7a371a}.page{animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.page h2{font-size:1.5rem;margin-bottom:1rem;color:var(--green-dark)}.card{background:var(--white);border-radius:.75rem;padding:1rem;margin-bottom:1rem;box-shadow:0 1px 3px #0000001a}.card h3{font-size:1rem;color:var(--green-dark);margin-bottom:.75rem}.btn{display:inline-block;padding:.75rem 1.5rem;border:none;border-radius:.5rem;font-size:1rem;font-weight:500;text-decoration:none;text-align:center;cursor:pointer;transition:all .2s;background:var(--gray);color:var(--black)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--green-main);color:var(--white)}.btn-primary:hover:not(:disabled){background:var(--green-dark)}.btn-large{width:100%;padding:1rem;font-size:1.125rem}.btn-small{padding:.5rem 1rem;font-size:.875rem}.btn-link{background:transparent;color:var(--green-main);padding:.5rem}.btn-remove{background:transparent;color:var(--red);border:none;padding:.25rem .5rem;font-size:.875rem;cursor:pointer}.form-group{margin-bottom:1.25rem}.form-group label{display:block;font-weight:500;margin-bottom:.5rem;color:var(--gray-dark)}.input{width:100%;padding:.875rem;border:2px solid var(--gray);border-radius:.5rem;font-size:1rem;transition:border-color .2s}.input:focus{outline:none;border-color:var(--green-main)}.player-list{list-style:none;background:var(--white);border:1px solid var(--gray);border-radius:.5rem;max-height:200px;overflow-y:auto;margin-top:.5rem}.player-list li{padding:.75rem 1rem;cursor:pointer;border-bottom:1px solid var(--gray);transition:background .2s}.player-list li:last-child{border-bottom:none}.player-list li:hover,.player-list li.highlighted{background:var(--gray-light)}.player-list li.no-results{color:var(--gray-dark);font-style:italic;cursor:default}.player-list li.no-results:hover{background:var(--white)}.player-select{position:relative}.player-select .player-list{position:absolute;left:0;right:0;z-index:10;box-shadow:0 4px 6px #0000001a}.selected-player{display:flex;justify-content:space-between;align-items:center;background:var(--gray-light);padding:.75rem 1rem;border-radius:.5rem;margin-bottom:.5rem}.selected-players{margin-bottom:.75rem}.team-players{list-style:none}.team-players li{padding:.5rem 0;border-bottom:1px solid var(--gray);display:flex;justify-content:space-between;align-items:center}.team-players li:last-child{border-bottom:none}.captain-badge{background:var(--gold);color:var(--black);padding:.125rem .5rem;border-radius:.25rem;font-size:.75rem;font-weight:500}.matches-list{list-style:none}.match-item{display:flex;justify-content:space-between;align-items:center;padding:.75rem 0;border-bottom:1px solid var(--gray)}.match-item:last-child{border-bottom:none}.match-info{display:flex;flex-direction:column}.match-round{font-size:.75rem;color:var(--gray-dark)}.match-opponent{font-weight:500}.match-result{padding:.25rem .75rem;border-radius:.25rem;font-size:.875rem;font-weight:500}.result-won{background:#c8e6c9;color:var(--green-dark)}.result-lost{background:#ffcdd2;color:var(--red)}.result-draw{background:var(--gray);color:var(--gray-dark)}.round-tabs{display:flex;gap:.5rem;margin-bottom:1rem}.tab{flex:1;padding:.75rem;background:var(--white);border:2px solid var(--gray);border-radius:.5rem;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s}.tab.active{background:var(--green-main);border-color:var(--green-main);color:var(--white)}.fixtures-list{display:flex;flex-direction:column;gap:.75rem}.fixture-card{background:var(--white);border-radius:.75rem;padding:1rem;box-shadow:0 1px 3px #0000001a}.fixture-card.completed{opacity:.8}.fixture-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.rink-badge{background:var(--green-light);color:var(--white);padding:.25rem .75rem;border-radius:.25rem;font-size:.75rem;font-weight:500}.status-badge{background:var(--gray);color:var(--gray-dark);padding:.25rem .5rem;border-radius:.25rem;font-size:.75rem}.fixture-teams{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.fixture-teams .team{flex:1;text-align:center;font-weight:500;padding:.5rem;background:var(--gray-light);border-radius:.5rem}.fixture-teams .team.winner{background:#c8e6c9;color:var(--green-dark)}.fixture-teams .vs{color:var(--gray-dark);font-size:.875rem}.fixture-result{text-align:center;margin-top:.75rem;color:var(--gray-dark);font-size:.875rem}.match-header{display:flex;justify-content:space-between;margin-bottom:1rem}.match-teams-large{text-align:center}.team-name{font-size:1.25rem;font-weight:600;padding:.5rem}.vs-large{color:var(--gray-dark);font-size:1rem;padding:.5rem}.winner-buttons{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1.5rem}.winner-btn{padding:1rem;border:2px solid var(--gray);border-radius:.5rem;background:var(--white);font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s}.winner-btn.selected{border-color:var(--green-main);background:#3d7a371a;color:var(--green-dark)}.winner-btn.draw{background:var(--gray-light)}.leaderboard{background:var(--white);border-radius:.75rem;overflow:hidden;box-shadow:0 1px 3px #0000001a}.leaderboard-header,.leaderboard-row{display:grid;grid-template-columns:2rem 1fr repeat(4,2rem) 2.5rem;gap:.5rem;padding:.75rem 1rem;align-items:center}.leaderboard-header{background:var(--green-dark);color:var(--white);font-size:.75rem;font-weight:600}.leaderboard-row{border-bottom:1px solid var(--gray)}.leaderboard-row:last-child{border-bottom:none}.leaderboard-row.top-1{background:#ffc10733}.leaderboard-row.top-2{background:#90a4ae33}.leaderboard-row.top-3{background:#cd7f3233}.leaderboard-row .rank{font-weight:600;color:var(--green-dark)}.leaderboard-row .team{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.leaderboard-row .stat{text-align:center;color:var(--gray-dark);font-size:.875rem}.leaderboard-row .points{text-align:center;font-weight:600;color:var(--green-dark)}.status-list{display:flex;flex-direction:column;gap:.5rem}.status-list>div{display:flex;justify-content:space-between;padding:.5rem 0;border-bottom:1px solid var(--gray)}.status-list>div:last-child{border-bottom:none}.status-list dt{color:var(--gray-dark)}.status-list dd{font-weight:500}.loading{text-align:center;padding:2rem;color:var(--gray-dark)}.error{background:#ffcdd2;color:var(--red);padding:.75rem 1rem;border-radius:.5rem;margin-bottom:1rem}.message{background:#c8e6c9;color:var(--green-dark);padding:.75rem 1rem;border-radius:.5rem;margin-top:1rem}.registered-message{background:#c8e6c9;color:var(--green-dark);padding:.5rem 1rem;border-radius:.5rem;margin-bottom:1rem;text-align:center}.status-text{color:var(--gray-dark);margin-bottom:1rem}.auto-refresh{text-align:center;color:var(--gray-dark);font-size:.75rem;margin-top:1rem}.small{font-size:.875rem;color:var(--gray-dark)}.links{display:flex;flex-direction:column;gap:.75rem;margin-top:1rem}.team-list,.roster-list{display:flex;flex-direction:column;gap:.5rem;margin-top:.75rem}.team-row,.roster-row{display:flex;justify-content:space-between;align-items:center;padding:.75rem;background:var(--gray-light);border-radius:.5rem}.team-info{display:flex;flex-direction:column;gap:.25rem}.team-actions{display:flex;gap:.5rem}.btn-danger{background:#ffcdd2;color:var(--red)}.btn-danger:hover:not(:disabled){background:#ef9a9a}.add-player-form{display:flex;gap:.5rem;margin-bottom:1rem}.add-player-form .input{flex:1}.add-player-form .btn{white-space:nowrap}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.modal{background:var(--white);border-radius:.75rem;padding:1.5rem;width:100%;max-width:500px;max-height:90vh;overflow-y:auto}.modal h3{margin-bottom:1rem;color:var(--green-dark)}.modal-actions{display:flex;gap:.75rem;margin-top:1.5rem;justify-content:flex-end}.edit-player-row{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem}.edit-player-row .player-select{flex:1}
