*{box-sizing:border-box;margin:0;padding:0}:root{--brand-main: #b2fce4;--brand-dark: #8fd9c4;--brand-text: #00193a;--session-color: #b2fce4;--keynote-color: #ffd700;--event-color: #a78bfa;--food-color: #fb923c;--panel-color: #60a5fa;--travel-color: #9ca3af;--white: #ffffff;--gray-light: #f5f5f5;--gray: #e0e0e0;--gray-dark: #666666;--black: #1a1a1a;--red: #d32f2f;--gold: #ffc107;--silver: #90a4ae;--bronze: #cd7f32;--radius-sm: .5rem;--radius-md: .75rem;--radius-lg: 1.25rem;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .1);--shadow-md: 0 4px 12px rgba(0, 0, 0, .1)}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;min-height:100dvh}.app{display:flex;flex-direction:column;min-height:100vh;min-height:100dvh}.header{background:var(--brand-main);color:var(--black);padding:1rem 1.25rem;text-align:center;position:sticky;top:0;z-index:100;display:flex;align-items:center;justify-content:center;gap:.5rem}.header-logo{height:1.25rem;width:auto}.header h1{font-size:1.125rem;font-weight:700;letter-spacing:-.02em}.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:.5rem 0;padding-bottom:max(.5rem,env(safe-area-inset-bottom));border-top:1px solid var(--gray);z-index:100}.nav a{color:var(--gray-dark);text-decoration:none;font-size:.75rem;font-weight:600;padding:.5rem .75rem;border-radius:var(--radius-lg);transition:all .2s ease;display:flex;flex-direction:column;align-items:center;gap:.25rem}.nav a svg{width:1.25rem;height:1.25rem}.nav a.active{color:var(--black);background:var(--brand-main)}.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;font-weight:700;letter-spacing:-.02em;margin-bottom:1.25rem;color:var(--brand-text)}.card{background:var(--white);border-radius:var(--radius-lg);padding:1.25rem;margin-bottom:1rem;box-shadow:var(--shadow-md)}.card h3{font-size:1rem;font-weight:600;color:var(--brand-text);margin-bottom:.75rem}.card.success-card{background:#b2fce44d;border-left:4px solid var(--brand-main);border-radius:var(--radius-md)}.card.success-card h3{color:var(--brand-text)}.btn{display:inline-block;padding:.875rem 1.5rem;border:none;border-radius:var(--radius-lg);font-size:1rem;font-weight:600;text-decoration:none;text-align:center;cursor:pointer;transition:all .2s ease;background:var(--gray);color:var(--black);-webkit-tap-highlight-color:transparent;-webkit-appearance:none;appearance:none}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--brand-main);color:var(--black)}.btn-primary:hover:not(:disabled){background:var(--brand-dark);transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn-large{width:100%;padding:1rem;font-size:1.125rem}.btn-small{padding:.5rem 1rem;font-size:.875rem;border-radius:var(--radius-md)}.btn-link{background:transparent;color:var(--black);padding:.5rem;border-radius:var(--radius-md)}.btn-remove{background:transparent;color:var(--red);border:none;padding:.25rem .5rem;font-size:.875rem;cursor:pointer}.btn-danger{background:#ffcdd2;color:var(--red)}.btn-danger:hover:not(:disabled){background:#ef9a9a}.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:1rem;border:2px solid var(--gray);border-radius:var(--radius-md);font-size:1rem;transition:all .2s ease}.input:focus{outline:none;border-color:var(--brand-main);box-shadow:0 0 0 3px #b2fce44d}textarea.input{min-height:100px;resize:vertical}.player-list{list-style:none;background:var(--white);border:1px solid var(--gray);border-radius:var(--radius-md);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-list li.taken{color:var(--gray-dark);cursor:not-allowed;opacity:.6;display:flex;justify-content:space-between;align-items:center}.player-list li.taken:hover{background:var(--white)}.player-list li .taken-team{font-size:.75rem;color:var(--gray-dark);font-style:italic}.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:var(--radius-md);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:var(--radius-sm);font-size:.75rem;font-weight:600}.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:var(--radius-sm);font-size:.875rem;font-weight:600}.result-won{background:#b2fce480;color:var(--brand-text)}.result-lost{background:#ffcdd2;color:var(--red)}.result-draw{background:var(--gray);color:var(--gray-dark)}.round-tabs,.day-tabs{display:flex;gap:.5rem;margin-bottom:1.25rem;overflow-x:auto;-webkit-overflow-scrolling:touch}.tab{flex:1;min-width:fit-content;padding:.75rem;background:var(--white);border:2px solid var(--gray);border-radius:var(--radius-lg);font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s ease;white-space:nowrap}.tab.active{background:var(--brand-main);border-color:var(--brand-main);color:var(--black)}.tab:hover:not(.active){border-color:var(--brand-main)}.fixtures-list{display:flex;flex-direction:column;gap:1rem}.fixture-card{background:var(--white);border-radius:var(--radius-lg);padding:1.25rem;box-shadow:var(--shadow-md)}.fixture-card.completed{opacity:.8}.fixture-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.rink-badge{background:var(--brand-main);color:var(--black);padding:.25rem .75rem;border-radius:var(--radius-sm);font-size:.75rem;font-weight:600}.status-badge{background:var(--gray);color:var(--gray-dark);padding:.25rem .5rem;border-radius:var(--radius-sm);font-size:.75rem;font-weight:500}.fixture-teams{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.fixture-teams .team{flex:1;text-align:center;font-weight:600;padding:.625rem;background:var(--gray-light);border-radius:var(--radius-md)}.fixture-teams .team.team-link{text-decoration:none;color:var(--brand-text);cursor:pointer;transition:background-color .2s,color .2s}.fixture-teams .team.team-link:hover{background:var(--brand-main);color:var(--brand-text)}.fixture-teams .team.winner{background:#b2fce480;color:var(--brand-text)}.fixture-teams .team.winner.team-link:hover{background:var(--brand-main);color:var(--brand-text)}.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}.fixture-score-btn{display:block;margin-top:.75rem;text-align:center}.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:var(--radius-lg);background:var(--white);font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease}.winner-btn:hover:not(.selected){border-color:var(--brand-main)}.winner-btn.selected{border-color:var(--brand-main);background:#b2fce44d;color:var(--brand-text)}.winner-btn.draw{background:var(--gray-light)}.leaderboard{background:var(--white);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-md)}.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(--brand-main);color:var(--black);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(--brand-text)}.leaderboard-row .team{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.leaderboard-row .team.team-link{text-decoration:none;color:var(--brand-text);cursor:pointer}.leaderboard-row .team.team-link:hover{color:var(--brand-text);text-decoration:underline}.leaderboard-row .stat{text-align:center;color:var(--gray-dark);font-size:.875rem}.leaderboard-row .points{text-align:center;font-weight:600;color:var(--brand-text)}.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:var(--radius-md);margin-bottom:1rem;font-weight:500}.message{background:#b2fce480;color:var(--brand-text);padding:.75rem 1rem;border-radius:var(--radius-md);margin-top:1rem}.registered-message{background:#b2fce480;color:var(--brand-text);padding:.5rem 1rem;border-radius:var(--radius-md);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 1rem;background:var(--gray-light);border-radius:var(--radius-md)}.team-info{display:flex;flex-direction:column;gap:.25rem}.team-actions{display:flex;gap:.5rem}.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;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.modal{background:var(--white);border-radius:var(--radius-lg);padding:1.5rem;width:100%;max-width:500px;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-md)}.modal h3{margin-bottom:1rem;color:var(--brand-text);font-weight:600}.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}.draw-actions{margin-top:1rem}.draw-actions .small{margin-top:.5rem}.agenda-timeline{position:relative;display:flex;flex-direction:column;gap:.75rem}.session-card{background:var(--white);border-radius:var(--radius-md);padding:1rem;box-shadow:var(--shadow-sm);border-left:4px solid var(--brand-main)}.session-card.type-keynote{border-left-color:var(--keynote-color)}.session-card.type-event{border-left-color:var(--event-color)}.session-card.type-food{border-left-color:var(--food-color)}.session-card.type-panel{border-left-color:var(--panel-color)}.session-card.type-travel{border-left-color:var(--travel-color)}.session-time{font-size:.75rem;color:var(--gray-dark);margin-bottom:.25rem}.session-title{font-weight:600;color:var(--brand-text);margin-bottom:.25rem}.session-location{font-size:.875rem;color:var(--gray-dark)}.faq-list{display:flex;flex-direction:column;gap:.75rem}.faq-item{background:var(--white);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);overflow:hidden}.faq-question{width:100%;padding:1rem;text-align:left;background:none;border:none;font-size:1rem;font-weight:600;color:var(--brand-text);cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:1rem}.faq-question:hover{background:var(--gray-light)}.faq-icon{flex-shrink:0;transition:transform .2s ease}.faq-item.open .faq-icon{transform:rotate(180deg)}.faq-answer{padding:0 1rem 1rem;color:var(--gray-dark);line-height:1.6}.map-container{background:var(--white);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-md)}.map-tabs{display:flex;gap:.5rem;margin-bottom:1rem}.map-viewer{width:100%;height:60vh;display:flex;align-items:center;justify-content:center;overflow:hidden;touch-action:none}.map-viewer img{max-width:100%;max-height:100%;object-fit:contain}.install-banner{position:fixed;top:0;left:0;right:0;background:var(--brand-main);padding:1rem;z-index:1001;box-shadow:var(--shadow-md)}.install-banner-content{max-width:600px;margin:0 auto;display:flex;align-items:flex-start;gap:1rem}.install-banner-text{flex:1}.install-banner-text h4{font-size:.875rem;font-weight:600;margin-bottom:.25rem}.install-banner-text p{font-size:.75rem;color:var(--gray-dark)}.install-banner-actions{display:flex;gap:.5rem;flex-shrink:0}.install-banner .btn{padding:.5rem 1rem;font-size:.875rem}.has-install-banner .header{top:4.5rem}.has-install-banner .main{padding-top:5.5rem}.password-form{max-width:300px;margin:2rem auto}.password-form h2{text-align:center;margin-bottom:1.5rem}.toggle-row{display:flex;justify-content:space-between;align-items:center;padding:.75rem 0;border-bottom:1px solid var(--gray)}.toggle-row:last-child{border-bottom:none}.toggle-label{font-weight:500}.toggle-switch{position:relative;width:3rem;height:1.75rem}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;cursor:pointer;inset:0;background-color:var(--gray);border-radius:1rem;transition:.2s}.toggle-slider:before{position:absolute;content:"";height:1.25rem;width:1.25rem;left:.25rem;bottom:.25rem;background-color:var(--white);border-radius:50%;transition:.2s}.toggle-switch input:checked+.toggle-slider{background-color:var(--brand-main)}.toggle-switch input:checked+.toggle-slider:before{transform:translate(1.25rem)}.push-stats{margin-bottom:1rem}.push-stats-total{font-size:1.5rem;font-weight:700;color:var(--brand-text);margin-bottom:.5rem}.push-stats-breakdown{display:flex;gap:1rem;font-size:.875rem;color:var(--gray-dark)}.quick-notify-buttons{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.empty-state{text-align:center;padding:3rem 1rem;color:var(--gray-dark)}.empty-state-icon{font-size:3rem;margin-bottom:1rem}.empty-state h3{margin-bottom:.5rem;color:var(--brand-text)}
