:root{--color-bg:#f8f6f2;--color-surface:#fff;--color-text:#1a1a1a;--color-text-muted:#5c5c5c;--color-primary:#2c5282;--color-primary-hover:#1a365d;--color-border:#e2e0dc;--color-error:#c53030;--color-success:#276749;--font-sans:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--space-xs:.25rem;--space-sm:.5rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2rem;--radius:.375rem;--max-width:28rem}*,:before,:after{box-sizing:border-box}body{font-family:var(--font-sans);color:var(--color-text);background-color:var(--color-bg);margin:0;font-size:1rem;line-height:1.5}.page{max-width:var(--max-width);padding:var(--space-xl) var(--space-md);margin:0 auto}.dashboard-page{--max-width-dashboard:32rem;max-width:var(--max-width-dashboard)}.dashboard-header{margin-bottom:var(--space-lg)}.dashboard-header-row{justify-content:space-between;align-items:center;gap:var(--space-md);margin-bottom:var(--space-md);display:flex}.dashboard-user-name{color:var(--color-text);margin:0;font-size:1.25rem;font-weight:600}.dashboard-header-actions{align-items:center;gap:var(--space-xs);flex-shrink:0;display:flex}.header-icon-button{padding:var(--space-sm);color:var(--color-text-muted);border-radius:var(--radius);cursor:pointer;background:0 0;border:1px solid #0000;flex-shrink:0;justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.header-icon-button:hover:not(:disabled){color:var(--color-primary);border-color:var(--color-border);background:var(--color-surface)}.header-icon-button:disabled{opacity:.6;cursor:not-allowed}.dashboard-title{color:var(--color-text);margin:0;font-size:1.25rem;font-weight:600}.dashboard-tabs{gap:var(--space-xs);border-bottom:1px solid var(--color-border);display:flex}.dashboard-tab{padding:var(--space-sm) var(--space-md);font:inherit;color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;flex:1;margin-bottom:-1px;font-weight:500}.dashboard-tab:hover{color:var(--color-text)}.dashboard-tab-active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.dashboard-tab-panel{padding-top:var(--space-md)}.dashboard-tab-panel>.games-section:first-child,.dashboard-tab-panel>.teams-list:first-child,.dashboard-tab-panel>.teams-empty:first-child{margin-top:0}.dashboard-tab-actions{gap:var(--space-sm);flex-wrap:wrap;display:flex}.teams-create-actions{margin-top:var(--space-xl)}.games-section .teams-list,.games-section .teams-empty{margin-top:0}.page-logo{width:100%;max-width:16rem;height:auto;margin:0 auto var(--space-lg);display:block}h1{margin:0 0 var(--space-md);font-size:1.75rem;font-weight:600}p{color:var(--color-text-muted);margin:0}.page-subtitle,.user-role{margin-bottom:var(--space-lg)}.user-role span{color:var(--color-text);font-weight:500}.auth-form{gap:var(--space-md);flex-direction:column;display:flex}.form-field{gap:var(--space-xs);flex-direction:column;display:flex}.form-field label{font-size:.875rem;font-weight:500}.form-field input{padding:var(--space-sm) var(--space-md);font:inherit;color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius)}.form-field input:focus{outline:2px solid var(--color-primary);outline-offset:1px}.form-field input[type=time]{max-width:12rem}.form-field input:read-only{color:var(--color-text-muted);background:var(--color-bg);cursor:default}.form-field input:disabled{cursor:not-allowed;opacity:.7}.form-field-checkbox label{align-items:center;gap:var(--space-sm);cursor:pointer;display:flex}.form-field-checkbox label:has(input:disabled){cursor:not-allowed}.form-field-checkbox input[type=checkbox]{width:1rem;height:1rem;margin:0}.form-field-group-label{font-size:.875rem;font-weight:500}.tour-questions-fields{gap:var(--space-sm) var(--space-md);flex-wrap:wrap;display:flex}.tour-questions-field{align-items:center;gap:var(--space-xs);display:flex}.tour-questions-field label{min-width:1.25rem;color:var(--color-text-muted);font-size:.875rem;font-weight:500}.tour-questions-field input{width:3.5rem;padding:var(--space-sm);font:inherit;color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);text-align:center}.tour-questions-field input:focus{outline:2px solid var(--color-primary);outline-offset:1px}.tour-questions-field input:disabled{cursor:not-allowed;opacity:.7}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.form-field select{padding:var(--space-sm) var(--space-md);font:inherit;color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius)}.form-field select:focus{outline:2px solid var(--color-primary);outline-offset:1px}.form-field-label-row{align-items:baseline;gap:var(--space-sm);flex-wrap:wrap;display:flex}.form-field-hint-inline{color:var(--color-text-muted);font-size:.8125rem}.form-field-hint{margin:0;font-size:.8125rem}.form-field-hint-error{color:var(--color-error)}.game-form,.team-form,.player-form,.season-form{margin-top:var(--space-md);margin-bottom:var(--space-lg);padding:var(--space-lg);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius)}.games-section{margin-top:var(--space-xl)}.games-section-title{margin:0 0 var(--space-md);color:var(--color-text);font-size:1.125rem;font-weight:600}.games-empty{font-size:.875rem}.games-list{gap:var(--space-sm);flex-direction:column;display:flex}.games-list-row{gap:var(--space-md);grid-template-columns:2.4fr 1fr;align-items:baseline;font-size:.9375rem;display:grid}.games-season-group{gap:var(--space-sm);flex-direction:column;display:flex}.games-season-group+.games-season-group,.games-season-group+.games-list-row,.games-list-row+.games-season-group{margin-top:var(--space-md)}.games-season-title{color:var(--color-text-muted);margin:0;font-size:1rem;font-weight:600}.games-season-toggle{align-items:center;gap:var(--space-sm);font:inherit;color:var(--color-text-muted);text-align:left;cursor:pointer;background:0 0;border:none;margin:0;padding:0;font-size:1rem;font-weight:600;display:inline-flex}.games-season-toggle:hover{color:var(--color-text)}.games-season-toggle:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:var(--radius)}.games-season-toggle-icon{border-bottom:2px solid;border-right:2px solid;width:.5rem;height:.5rem;transition:transform .15s;display:inline-block;transform:rotate(-45deg)}.games-season-toggle-icon-expanded{transform:rotate(45deg)}.games-season-toggle-label{color:inherit}.games-season-games{gap:var(--space-sm);flex-direction:column;display:flex}.games-list-row span:first-child{color:var(--color-text);font-weight:500}.games-list-row span:not(:first-child){color:var(--color-text-muted)}.games-list-row-clickable{cursor:pointer;border-radius:var(--radius)}.games-list-row-clickable:hover{background:var(--color-bg)}.games-list-row-clickable:focus-visible{outline:2px solid var(--color-primary);outline-offset:1px}.seasons-list-row{grid-template-columns:1.2fr 2fr}.teams-list{gap:var(--space-sm);margin-top:var(--space-xl);flex-direction:column;display:flex}.teams-list-row{color:var(--color-text);font-size:.9375rem;font-weight:500}.teams-list-row-clickable{cursor:pointer}.teams-list-row-clickable:hover{color:var(--color-primary)}.teams-list-row-clickable:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:var(--radius)}.player-game-teams-list{gap:var(--space-sm);margin-top:var(--space-xl);flex-direction:column;display:flex}.player-game-teams-list .game-team-section{gap:var(--space-sm)}.player-game-teams-list .game-team-name{font-size:.9375rem;font-weight:500}.player-game-my-team-row{justify-content:space-between;align-items:center;gap:var(--space-md);display:flex}.player-game-my-team-row .teams-list-row{min-width:0}.team-players-status-letter{min-width:1.75rem;padding:var(--space-xs) var(--space-sm);color:var(--color-primary);justify-content:center;font-weight:600;display:inline-flex}.teams-empty,.players-empty{margin-top:var(--space-xl);font-size:.875rem}.players-table-wrapper{margin-top:var(--space-xl);overflow-x:auto}.players-table{border-collapse:collapse;width:100%;font-size:.9375rem}.players-table th,.players-table td{padding:var(--space-sm) var(--space-md);text-align:left;border-bottom:1px solid var(--color-border)}.players-table th{color:var(--color-text-muted);font-weight:600}.players-table td{color:var(--color-text)}.players-table-row-clickable{cursor:pointer}.players-table-row-clickable:hover td{background:var(--color-surface)}.players-table-row-clickable:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px}.players-table-sort-button{align-items:center;gap:var(--space-xs);font:inherit;color:inherit;cursor:pointer;background:0 0;border:none;padding:0;font-weight:600;display:inline-flex}.players-table-sort-button:hover{color:var(--color-text)}.team-players-tab{gap:var(--space-md);flex-direction:column;display:flex}.team-players-actions{gap:var(--space-sm);flex-wrap:wrap;display:flex}.team-players-empty{font-size:.875rem}.player-team-access-note{max-width:40rem;margin:0;font-size:.875rem;line-height:1.5}.team-players-table-wrapper{overflow-x:auto}.team-players-table{border-collapse:collapse;width:100%;font-size:.9375rem}.team-players-table td{padding:var(--space-sm) var(--space-md);text-align:left;border-bottom:1px solid var(--color-border);color:var(--color-text)}.team-players-status-cell{text-align:center;width:3rem}.team-players-status-control{justify-content:center;display:inline-flex;position:relative}.team-players-status-button{min-width:1.75rem;padding:var(--space-xs) var(--space-sm);font:inherit;color:var(--color-primary);border:1px solid var(--color-border);border-radius:var(--radius);cursor:pointer;background:0 0;font-weight:600}.team-players-status-button:hover:not(:disabled){background:var(--color-surface)}.team-players-status-button:disabled{opacity:.6;cursor:not-allowed}.team-players-status-control .status-popup-menu{top:50%;right:calc(100% + var(--space-xs));z-index:10;gap:var(--space-xs);padding:var(--space-xs);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius);display:flex;position:absolute;transform:translateY(-50%);box-shadow:0 4px 12px #0000001f}.status-popup-menu-item{min-width:1.75rem;padding:var(--space-xs) var(--space-sm);font:inherit;color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius);cursor:pointer;background:0 0;font-weight:600}.status-popup-menu-item:hover{background:var(--color-surface);color:var(--color-primary)}.status-popup-menu-item-delete{color:var(--color-error);border-color:var(--color-error)}.status-popup-menu-item-delete:hover{background:var(--color-error);color:#fff}.team-administrators-section{gap:var(--space-md);margin-top:var(--space-xl);flex-direction:column;display:flex}.team-administrators-section-title{color:var(--color-text);margin:0;font-size:1.125rem;font-weight:600}.select-player-panel,.select-team-panel{gap:var(--space-md);flex-direction:column;display:flex}.game-teams-tab{gap:var(--space-lg);flex-direction:column;display:flex}.game-teams-actions{align-items:center;gap:var(--space-sm);flex-wrap:wrap;display:flex}.game-teams-actions-spacer{min-width:var(--space-md);flex:auto}.game-teams-empty{font-size:.875rem}.game-teams-list{gap:var(--space-xl);flex-direction:column;display:flex}.game-team-section{gap:var(--space-md);flex-direction:column;display:flex}.game-team-header{justify-content:space-between;align-items:center;gap:var(--space-md);display:flex}.game-team-header-actions{align-items:center;gap:var(--space-xs);flex-shrink:0;display:flex}.game-team-name{color:var(--color-text);margin:0;font-size:1rem;font-weight:600}.game-team-players{gap:var(--space-md);padding-left:var(--space-md);border-left:2px solid var(--color-border);flex-direction:column;display:flex}.player-email-rows{margin-top:var(--space-md)}.player-email-table{border-collapse:collapse;width:100%;font-size:.9375rem}.player-email-table th,.player-email-table td{padding:var(--space-sm) var(--space-xs);text-align:left;vertical-align:top;border-bottom:1px solid var(--color-border)}.player-email-table th{color:var(--color-text-muted);font-weight:600}.player-email-table th:last-child,.player-email-table td:last-child{text-align:right;width:5rem}.player-email-table input,.player-email-table select{width:100%}.player-email-row-actions{justify-content:flex-end;align-items:center;gap:var(--space-xs);display:inline-flex}.player-phone-rows{margin-top:var(--space-md)}.player-phone-table{border-collapse:collapse;width:100%;font-size:.9375rem}.player-phone-table th,.player-phone-table td{padding:var(--space-sm) var(--space-xs);text-align:left;vertical-align:top;border-bottom:1px solid var(--color-border)}.player-phone-table th{color:var(--color-text-muted);font-weight:600}.player-phone-table th:last-child,.player-phone-table td:last-child{text-align:right;width:5rem}.player-phone-table input{width:100%}.player-phone-row-actions{justify-content:flex-end;align-items:center;gap:var(--space-xs);display:inline-flex}.membership-rows{margin-top:var(--space-xs)}.membership-section-title{font-size:.875rem;font-weight:500}.membership-type-cell{color:var(--color-text-muted)}.player-memberships-panel{margin-top:var(--space-xl)}.player-delete-section{margin-top:var(--space-xl);justify-content:flex-start;display:flex}.player-memberships-add{margin-bottom:var(--space-md)}.player-memberships-add-form{gap:var(--space-sm);flex-direction:column;display:flex}.player-memberships-add-form select{width:100%}.player-memberships-season{margin-bottom:var(--space-lg)}.player-memberships-season:last-child{margin-bottom:0}.player-memberships-season-title{margin:0 0 var(--space-xs);color:var(--color-text);font-size:1rem;font-weight:600}.player-memberships-empty{font-size:.875rem}.form-actions{gap:var(--space-sm);margin-top:var(--space-sm);flex-wrap:wrap;display:flex}.page-meta{margin-bottom:var(--space-lg);font-size:.875rem}.page-nav{margin-bottom:var(--space-md);font-size:.875rem}.page-nav a{color:var(--color-primary);text-decoration:none}.page-nav a:hover{color:var(--color-primary-hover)}.dashboard-actions{margin-top:var(--space-md)}.panel{margin-bottom:var(--space-lg);padding:var(--space-lg);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius)}.panel-title{margin:0 0 var(--space-md);color:var(--color-text);font-size:1.125rem;font-weight:600}.danger-zone{margin-top:var(--space-xl);padding-top:var(--space-lg);border-top:1px solid var(--color-border)}.danger-zone-text{margin-bottom:var(--space-md);font-size:.875rem}.form-success{color:var(--color-success);font-size:.875rem}.form-hint{font-size:.8125rem}.form-error{color:var(--color-error);font-size:.875rem}.form-footer{text-align:center;font-size:.875rem}.form-footer a{color:var(--color-primary)}.form-footer a:hover{color:var(--color-primary-hover)}.btn{padding:var(--space-sm) var(--space-md);font:inherit;border-radius:var(--radius);cursor:pointer;border:none;font-weight:500}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{color:#fff;background:var(--color-primary)}.btn-primary:hover:not(:disabled){background:var(--color-primary-hover)}.btn-secondary{color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border)}.btn-secondary:hover:not(:disabled){border-color:var(--color-primary)}a.btn{text-align:center;text-decoration:none;display:inline-block}.btn-danger{color:#fff;background:var(--color-error)}.btn-danger:hover:not(:disabled){background:#9b2c2c}.dialog-backdrop{z-index:1000;padding:var(--space-md);background:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.dialog-panel{width:min(100%,24rem);padding:var(--space-lg);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:0 12px 32px #0000001f}.dialog-title{margin:0 0 var(--space-sm);color:var(--color-text);font-size:1.125rem;font-weight:600}.dialog-message{margin:0 0 var(--space-lg);color:var(--color-text-muted)}.dialog-actions{gap:var(--space-sm);flex-wrap:wrap;display:flex}.dialog-panel>.form-field+.dialog-actions{margin-top:var(--space-lg)}.import-players-dialog{width:min(100%,32rem)}.import-players-form{gap:var(--space-md);margin-bottom:var(--space-lg);display:grid}.import-players-short-input{width:4rem}.import-players-progress{margin-bottom:var(--space-lg)}.import-players-progress-label{margin:0 0 var(--space-xs);color:var(--color-text-muted);font-size:.875rem}.import-players-progress-bar{background:var(--color-border);border-radius:999px;height:.5rem;overflow:hidden}.import-players-progress-fill{background:var(--color-primary);height:100%;transition:width .2s}.import-players-candidates{margin:0 0 var(--space-lg);padding:0;list-style:none}.import-players-candidate{justify-content:space-between;align-items:center;gap:var(--space-sm);padding:var(--space-sm) 0;border-bottom:1px solid var(--color-border);display:flex}.import-players-candidate:last-child{border-bottom:none}.import-players-candidate-info{flex-direction:column;gap:.125rem;display:flex}.import-players-candidate-actions{align-items:center;gap:var(--space-xs);flex-shrink:0;display:flex}.import-players-candidate-meta{color:var(--color-text-muted);font-size:.8125rem}.game-results-tab{gap:var(--space-md);flex-direction:column;display:flex}.game-results-actions{align-items:center;gap:var(--space-sm);flex-wrap:wrap;display:flex}.game-results-tours{gap:var(--space-lg);flex-direction:column;display:flex}.game-results-tour{gap:var(--space-sm);flex-direction:column;display:flex}.game-results-table-wrapper{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);max-width:100%;overflow-x:auto}.game-results-table{border-collapse:collapse;width:max-content;min-width:100%}.game-results-table th,.game-results-table td{border-bottom:1px solid var(--color-border);border-right:1px solid var(--color-border);text-align:center;vertical-align:middle;padding:1px}.game-results-table th:last-child,.game-results-table td:last-child{border-right:none}.game-results-table tbody tr:last-child th,.game-results-table tbody tr:last-child td{border-bottom:none}.game-results-question-col{z-index:1;white-space:nowrap;background:var(--color-surface);min-width:3.25rem;font-size:.75rem;font-weight:500;position:sticky;left:0;padding-left:var(--space-xs)!important;padding-right:var(--space-xs)!important;text-align:center!important}.game-results-table thead .game-results-question-col{z-index:2;vertical-align:bottom;width:1.7rem;min-width:1.7rem;max-width:1.7rem;height:5.5rem;padding:var(--space-xs) 0!important;text-align:center!important}.game-results-team-col{vertical-align:bottom;width:1.7rem;min-width:1.7rem;max-width:1.7rem;height:5.5rem;padding:var(--space-xs) 0!important}.game-results-team-name{text-overflow:ellipsis;white-space:nowrap;writing-mode:vertical-rl;max-width:5.25rem;font-size:.6875rem;font-weight:500;line-height:1.2;display:inline-block;overflow:hidden;transform:rotate(180deg)}.game-results-summary-row th,.game-results-summary-row td{padding:var(--space-xs) var(--space-sm);background:var(--color-bg);font-size:.75rem;font-weight:600}.game-results-summary-cell{min-width:1.7rem}.game-result-cell{width:1.5rem;height:1.5rem;color:inherit;border-radius:var(--radius);cursor:pointer;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;padding:0;display:inline-flex}.game-result-cell:hover:not(:disabled):not(.game-result-cell-readonly){border-color:var(--color-border);background:var(--color-bg)}.game-result-cell:disabled,.game-result-cell-readonly{opacity:1;cursor:default}span.game-result-cell{vertical-align:middle}.game-result-cell-has-answer{border-color:var(--color-border)}.game-result-cell-readonly:hover{background:0 0}.game-result-cell-has-answer.game-result-cell-readonly:hover{border-color:var(--color-border)}.game-result-mark{justify-content:center;align-items:center;width:1.25rem;height:1.25rem;display:inline-flex}.game-result-mark-correct{color:var(--color-success)}.game-result-mark-disputed{color:#b7791f}.game-result-cell-menu{z-index:1100;min-width:10rem;padding:var(--space-xs);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius);position:fixed;box-shadow:0 4px 12px #0000001f}.game-result-cell-menu-item{width:100%;padding:var(--space-sm) var(--space-md);font:inherit;color:var(--color-text);text-align:left;border-radius:var(--radius);cursor:pointer;background:0 0;border:none;font-size:.875rem;display:block}.game-result-cell-menu-item:hover{background:var(--color-surface);color:var(--color-primary)}
