.app-header{display:flex;justify-content:space-between;align-items:center;padding:12px 20px;background-color:var(--bg-secondary);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:100}.header-logo{height:32px;display:flex;align-items:center;background:none;border:none;padding:0;cursor:pointer;transition:opacity .2s}.header-logo:hover{opacity:.8}.header-logo img{height:100%;width:auto}.header-avatar{width:40px;height:40px;border-radius:50%;overflow:hidden;border:2px solid var(--accent);background:none;padding:0;cursor:pointer;transition:all .2s}.header-avatar:hover{border-color:var(--accent-hover);transform:scale(1.05)}.header-avatar img{width:100%;height:100%;object-fit:cover}.avatar-placeholder{width:100%;height:100%;background:linear-gradient(135deg,var(--accent),var(--accent-hover));display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:600;color:var(--text-primary)}.tabs{display:flex;background-color:var(--bg-secondary);border-top:1px solid var(--border);position:fixed;bottom:0;left:0;right:0;z-index:100;overflow-x:auto;-webkit-overflow-scrolling:touch}.tab{flex:1;padding:12px 8px;background:none;color:var(--text-secondary);font-size:14px;font-weight:500;transition:all .2s;border-bottom:2px solid transparent;min-width:80px;white-space:nowrap;display:flex;flex-direction:column;align-items:center;gap:4px}.tab-icon{font-size:20px}.tab-label{font-size:12px}.tab:hover{color:var(--text-primary);background-color:var(--bg-tertiary)}.tab.active{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}.games-page{padding:20px;min-height:calc(100vh - 120px)}.games-header{margin-bottom:16px}.games-header h1{font-size:24px;font-weight:600;margin:0}.games-tabs{display:flex;gap:8px;margin-bottom:24px;border-bottom:1px solid var(--border)}.games-tab{padding:12px 20px;background:none;border:none;border-bottom:2px solid transparent;color:var(--text-secondary);font-size:16px;font-weight:500;cursor:pointer;transition:all .2s;margin-bottom:-1px}.games-tab:hover{color:var(--text-primary)}.games-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.games-section{background:var(--bg-secondary);border-radius:8px;padding:20px;margin-bottom:24px}.games-section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.games-section-header h2{font-size:20px;font-weight:600;margin:0}.games-section-header .btn-primary{flex:0 0 auto;flex-shrink:0;width:auto;min-width:auto}.games-header .btn-primary{flex:0 0 auto;flex-shrink:0;width:auto;min-width:auto;margin-left:auto}.btn-primary{background-color:var(--accent);color:var(--text-primary);padding:12px 24px;border-radius:8px;font-size:14px;font-weight:500;transition:background-color .2s;border:none;cursor:pointer;white-space:nowrap;flex-shrink:0}.games-list{display:flex;flex-direction:column;gap:12px}.game-card{background-color:var(--bg-tertiary);border:1px solid var(--border);border-radius:8px;padding:16px;transition:all .2s;display:flex;flex-direction:column;gap:16px}.game-card.game-pending{border-color:#eab30866;background-color:#eab3080d}.game-card:hover{background-color:var(--accent);border-color:var(--accent);transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.game-card-top{display:flex;justify-content:space-between;align-items:center;gap:16px}.game-info{flex:1;display:flex;flex-direction:column;gap:4px}.game-opponent{font-size:16px;font-weight:500}.game-type{font-size:14px;color:var(--text-secondary)}.game-date{font-size:12px;color:var(--text-secondary);margin-top:4px}.game-score{font-size:20px;font-weight:600;color:var(--accent);white-space:nowrap}.game-status{font-size:12px;font-weight:500;padding:4px 8px;border-radius:4px;margin-top:4px;display:inline-block}.game-status-pending{background-color:#eab30826;color:#d4a017}.game-status-confirmed{background-color:#4ade8033;color:var(--success)}.game-status-rejected{background-color:#ef444433;color:var(--error)}.game-actions{display:flex;gap:8px;justify-content:flex-start;padding-top:12px;border-top:1px solid var(--border)}.btn-confirm,.btn-reject{padding:6px 12px;border-radius:6px;font-size:12px;font-weight:500;transition:all .2s;white-space:nowrap;flex:0 0 auto;width:auto;min-width:auto;border:none;cursor:pointer}.btn-confirm{background-color:var(--success);color:var(--text-primary)}.btn-confirm:hover{background-color:#22c55e}.btn-reject{background-color:var(--error);color:var(--text-primary)}.btn-reject:hover{background-color:#dc2626}.all-games-modal{max-width:600px;max-height:90vh}.rating-filters{display:flex;gap:8px;margin-top:20px;margin-bottom:20px;flex-wrap:wrap}.rating-filter-btn{padding:8px 16px;background-color:var(--bg-tertiary);border:1px solid var(--border);border-radius:8px;color:var(--text-primary);font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.rating-filter-btn:hover{background-color:var(--border)}.rating-filter-btn.active{background-color:var(--accent);border-color:var(--accent);color:var(--text-primary)}.rating-list{display:flex;flex-direction:column;gap:12px}.rating-item{background-color:var(--bg-tertiary);border:1px solid var(--border);border-radius:8px;padding:16px;display:flex;align-items:center;gap:16px;transition:all .2s}.rating-item:hover{border-color:var(--accent);transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.rating-position{font-size:14px;font-weight:600;min-width:30px;text-align:center;color:var(--accent)}.rating-avatar{width:48px;height:48px;border-radius:50%;overflow:hidden;flex-shrink:0;background-color:var(--bg-secondary);display:flex;align-items:center;justify-content:center}.rating-avatar img{width:100%;height:100%;object-fit:cover}.rating-avatar-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--accent) 0%,var(--accent-hover) 100%);color:var(--text-primary);font-size:20px;font-weight:600;text-transform:uppercase}.rating-info{flex:1;display:flex;flex-direction:column;gap:4px}.rating-name{font-size:16px;font-weight:500}.rating-score{font-size:20px;font-weight:600;color:var(--accent);min-width:60px;text-align:right}.rating-empty{display:flex;justify-content:center;align-items:center;min-height:200px;padding:40px}.rating-empty-message{text-align:center;color:var(--text-secondary);font-size:16px}.modal-close{background:none;color:var(--text-secondary);font-size:28px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:8px;transition:all .2s}.form-group select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23b0b0b0' d='M6 9L1 4h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:36px;cursor:pointer}.btn-secondary{flex:1;background-color:var(--bg-tertiary);color:var(--text-primary);padding:12px 24px;border-radius:8px;font-size:14px;font-weight:500;transition:background-color .2s}.modal-footer .btn-primary{flex:1}.games-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;text-align:center}.games-empty-message{font-size:16px;color:var(--text-secondary);margin-bottom:24px;line-height:1.5}.opponent-search-wrapper input{width:100%;padding:12px;background-color:var(--bg-tertiary);border:1px solid var(--border);border-radius:8px;color:var(--text-primary);font-size:14px}.opponent-search input:focus{border-color:var(--accent);outline:none}.opponent-option.no-results{color:var(--text-secondary);cursor:default}.opponent-option.no-results:hover{background-color:transparent}.progress-page{padding:20px;min-height:calc(100vh - 140px)}.progress-page h1{font-size:24px;font-weight:600;margin-bottom:20px}.progress-tabs{display:flex;gap:8px;margin-bottom:24px;border-bottom:1px solid var(--border)}.progress-tab{padding:12px 24px;background:none;border:none;border-bottom:2px solid transparent;color:var(--text-secondary);font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;margin-bottom:-1px}.progress-tab:hover{color:var(--text-primary)}.progress-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.progress-container{display:flex;flex-direction:column;align-items:center;gap:24px}.radar-chart-wrapper{width:100%;max-width:500px;display:flex;justify-content:center;align-items:center;background-color:var(--bg-secondary);border:1px solid var(--border);border-radius:16px;padding:30px;overflow:visible}.radar-chart{width:100%;height:auto}.radar-icon{-webkit-user-select:none;user-select:none;pointer-events:none}.radar-value{font-weight:600}.progress-legend{background-color:var(--bg-secondary);border:1px solid var(--border);border-radius:12px;padding:16px;width:100%;max-width:500px;overflow-x:auto}.legend-title{font-size:14px;font-weight:600;color:var(--text-primary);margin-bottom:16px;text-align:center}.legend-table{width:100%;min-width:400px}.legend-header{display:grid;grid-template-columns:120px 1fr 60px;gap:12px;padding-bottom:12px;border-bottom:2px solid var(--border);font-size:12px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;align-items:center}.legend-body{display:flex;flex-direction:column}.legend-row{display:grid;grid-template-columns:120px 1fr 60px;gap:12px;padding:12px 0;border-bottom:1px solid var(--border);font-size:13px;color:var(--text-primary);align-items:center}.legend-row:last-child{border-bottom:none}.legend-col-name{display:flex;align-items:center;gap:6px;font-weight:500}.legend-col-description{color:var(--text-secondary);line-height:1.4;display:flex;align-items:center}.legend-col-value{text-align:right;font-weight:600;color:var(--accent);font-size:14px;display:flex;align-items:center;justify-content:flex-end}.legend-icon{font-size:18px;line-height:1;flex-shrink:0}.legend-name{font-weight:500}.progress-note{font-size:12px;color:var(--text-secondary);text-align:center;max-width:500px;line-height:1.5;padding:0 20px;margin-top:8px}.skills-content{width:100%;max-width:500px}.skills-placeholder{background-color:var(--bg-secondary);border:1px solid var(--border);border-radius:12px;padding:40px 20px;text-align:center;color:var(--text-secondary);font-size:14px}.achievements-content{width:100%;max-width:600px}.achievements-list{display:flex;flex-direction:column;gap:12px}.achievement-card{background-color:var(--bg-secondary);border:1px solid var(--border);border-radius:12px;padding:16px;display:flex;align-items:center;gap:16px;transition:all .2s}.achievement-card:hover{border-color:var(--accent);box-shadow:0 2px 8px #0000001a}.achievement-place{display:flex;align-items:center;gap:8px;font-size:24px;flex-shrink:0}.achievement-place-text{font-size:14px;font-weight:600;color:var(--text-primary)}.achievement-info{flex:1;display:flex;flex-direction:column;gap:4px}.achievement-tournament-name{font-size:16px;font-weight:500;color:var(--text-primary)}.achievement-date{font-size:12px;color:var(--text-secondary)}@media (max-width: 768px){.radar-chart-wrapper{padding:15px}.radar-chart{width:100%;height:auto}.legend-header,.legend-row{grid-template-columns:100px 1fr 50px;gap:8px;font-size:12px}.legend-col-name{flex-direction:column;align-items:flex-start;gap:4px}.legend-icon{font-size:16px}.legend-col-description{font-size:11px}.legend-col-value{font-size:13px}.progress-note{font-size:11px;padding:0 10px}}.profile-page{padding:20px;min-height:calc(100vh - 120px)}.profile-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.profile-page h1{font-size:24px;font-weight:600;margin:0}.profile-edit-button-icon{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:none;border:2px solid var(--accent);border-radius:50%;cursor:pointer;font-size:18px;transition:all .2s;padding:0}.profile-edit-button-icon:hover{background-color:var(--accent);transform:scale(1.05)}.profile-content{display:flex;flex-direction:column;align-items:center;gap:24px}.profile-photo-container{display:flex;flex-direction:column;align-items:center;gap:12px}.profile-photo{width:120px;height:120px;border-radius:50%;overflow:hidden;border:3px solid var(--accent);position:relative;transition:opacity .2s}.profile-photo:hover{opacity:.8}.profile-photo.uploading{opacity:.6;pointer-events:none}.profile-photo img{width:100%;height:100%;object-fit:cover}.photo-placeholder{width:100%;height:100%;background:linear-gradient(135deg,var(--accent),var(--accent-hover));display:flex;align-items:center;justify-content:center;font-size:36px;font-weight:600;color:var(--text-primary)}.photo-loading{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:var(--bg-secondary);color:var(--text-secondary);font-size:14px}.profile-info{display:flex;flex-direction:column;align-items:center;gap:16px;width:100%}.profile-name{font-size:24px;font-weight:600;text-align:center}.profile-id{display:flex;align-items:center;justify-content:center;gap:8px;padding:8px 16px;background-color:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;cursor:pointer;transition:all .2s;font-size:14px;color:var(--text-secondary);-webkit-user-select:none;user-select:none}.profile-id:hover{background-color:var(--bg-tertiary);border-color:var(--accent);color:var(--text-primary)}.profile-id-label{font-weight:500}.profile-id-value{font-weight:600;color:var(--accent);font-family:monospace}.profile-id-copied{color:var(--accent);font-weight:500;animation:fadeIn .2s}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.profile-info .btn-primary{width:100%;max-width:300px;padding:12px 24px}.profile-edit{width:100%;max-width:400px;display:flex;flex-direction:column;gap:20px}.profile-edit .form-group{margin-bottom:0}.profile-edit input{width:100%;padding:12px;background-color:var(--bg-tertiary);border:1px solid var(--border);border-radius:8px;color:var(--text-primary);font-size:14px}.profile-edit input:focus{border-color:var(--accent)}.profile-actions{display:flex;gap:12px}.profile-actions .btn-primary,.profile-actions .btn-secondary{flex:1;padding:12px 24px}.profile-ratings{width:100%;margin-top:32px}.profile-ratings-title{font-size:20px;font-weight:600;margin-bottom:16px;color:var(--text-primary)}.total-rating{display:flex;justify-content:space-between;align-items:center;padding:20px;background:linear-gradient(135deg,var(--accent),var(--accent-hover));border-radius:12px;margin-bottom:20px}.total-rating-label{font-size:18px;font-weight:600;color:var(--text-primary)}.total-rating-value{font-size:32px;font-weight:700;color:var(--text-primary)}.ratings-list{display:flex;flex-direction:column;gap:12px}.rating-item{display:flex;justify-content:space-between;align-items:center;padding:16px;background-color:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;transition:all .2s}.rating-item:hover{background-color:var(--bg-tertiary);border-color:var(--accent)}.rating-game-type{font-size:16px;font-weight:500;color:var(--text-primary)}.rating-value{font-size:18px;font-weight:600;color:var(--accent)}.admin-page{padding:20px;min-height:calc(100vh - 120px)}.admin-tabs{display:flex;gap:8px;margin-bottom:24px;border-bottom:1px solid var(--border)}.admin-tab{padding:12px 24px;background:none;border:none;border-bottom:2px solid transparent;color:var(--text-secondary);font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;margin-bottom:-1px}.admin-tab:hover{color:var(--text-primary)}.admin-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.admin-header{margin-bottom:24px}.admin-page h1{font-size:24px;font-weight:600;margin:0}.admin-content{display:flex;flex-direction:column;gap:24px}.admin-section{background:var(--bg-secondary);border-radius:8px;padding:20px}.admin-section h2{font-size:20px;font-weight:600;margin:0 0 12px}.admin-section p{margin:0;color:var(--text-secondary)}.admin-actions{display:flex;flex-direction:column;gap:12px;margin-top:16px}.admin-action-btn{display:flex;align-items:center;gap:12px;width:100%;padding:16px;background-color:var(--bg-tertiary);border:1px solid var(--border);border-radius:8px;color:var(--text-primary);font-size:16px;font-weight:500;cursor:pointer;transition:all .2s;text-align:left}.admin-action-btn:hover{background-color:var(--accent);border-color:var(--accent);transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.admin-action-icon{font-size:24px;line-height:1}.admin-action-label{flex:1}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#000c;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.modal-content{background-color:var(--bg-secondary);border-radius:16px;width:100%;max-width:400px;max-height:90vh;overflow:scroll;display:flex;flex-direction:column}.add-game-modal{max-width:500px;max-height:95vh;overflow:scroll}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px;border-bottom:1px solid var(--border)}.modal-header h2{font-size:20px;font-weight:600}.modal-close{background:none;color:var(--text-secondary);font-size:28px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:8px;transition:all .2s;border:none;cursor:pointer}.modal-close:hover{background-color:var(--bg-tertiary);color:var(--text-primary)}.modal-body{padding:20px;flex:1}.form-group{margin-bottom:20px}.form-group label{display:block;margin-bottom:8px;font-size:14px;font-weight:500;color:var(--text-secondary)}.form-group input,.form-group select{width:100%;padding:12px;background-color:var(--bg-tertiary);border:1px solid var(--border);border-radius:8px;color:var(--text-primary);font-size:14px;-webkit-appearance:none;-moz-appearance:none;appearance:none}.form-group input[type=number]::-webkit-inner-spin-button,.form-group input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.form-group input[type=number]{-moz-appearance:textfield}.form-group select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23b0b0b0' d='M6 9L1 4h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:36px;cursor:pointer}.form-group input:focus,.form-group select:focus{outline:none;border-color:var(--accent)}.score-inputs{display:flex;align-items:center;gap:12px}.score-inputs input{flex:1}.score-inputs span{font-size:18px;font-weight:600}.modal-footer{display:flex;gap:12px;padding:20px;border-top:1px solid var(--border)}.btn-secondary{flex:1;background-color:var(--bg-tertiary);color:var(--text-primary);padding:12px 24px;border-radius:8px;font-size:14px;font-weight:500;transition:background-color .2s;border:none;cursor:pointer}.btn-secondary:hover{background-color:var(--border)}.btn-primary{background-color:var(--accent);color:var(--text-primary);padding:12px 24px;border-radius:8px;font-size:14px;font-weight:500;transition:background-color .2s;border:none;cursor:pointer}.btn-primary:hover{background-color:var(--accent-hover)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-save-right{margin-left:auto}.opponent-search-wrapper{position:relative;width:100%}.opponent-dropdown{position:absolute;top:100%;left:0;right:0;margin-top:4px;background-color:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;max-height:200px;overflow-y:auto;z-index:1000;box-shadow:0 4px 12px #00000026}.add-game-modal .opponent-dropdown{max-height:300px}.opponent-option{padding:12px;cursor:pointer;transition:background-color .2s;font-size:14px;color:var(--text-primary)}.opponent-option:hover{background-color:var(--bg-tertiary)}.admin-section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.admin-section-header h2{margin:0}.students-list{display:flex;flex-direction:column;gap:12px}.student-item{display:flex;justify-content:space-between;align-items:center;padding:12px;background-color:var(--bg-tertiary);border:1px solid var(--border);border-radius:8px;transition:all .2s}.student-item:hover{border-color:var(--accent)}.student-info{flex:1}.student-name{font-size:16px;font-weight:500;color:var(--text-primary)}.student-actions{display:flex;gap:8px}.btn-view-skills{padding:6px 12px;background-color:var(--accent);color:var(--text-primary);border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .2s}.btn-view-skills:hover{background-color:var(--accent-hover)}.btn-remove-student{padding:6px 12px;background-color:transparent;color:var(--text-secondary);border:1px solid var(--border);border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.btn-remove-student:hover{background-color:var(--bg-tertiary);border-color:var(--text-secondary);color:var(--text-primary)}.add-student-modal{overflow:visible}.json-add-modal{max-width:700px;max-height:90vh;overflow:scroll}.json-add-modal textarea{font-family:Courier New,monospace}.student-skills-modal{max-width:600px;max-height:90vh;overflow:scroll}.student-skills-chart{margin-bottom:24px;display:flex;justify-content:center}.skills-edit-form{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:24px}.skills-edit-form .form-group{margin-bottom:0}.skills-edit-form input[type=number]{width:100%;padding:10px;background-color:var(--bg-tertiary);border:1px solid var(--border);border-radius:8px;color:var(--text-primary);font-size:14px}.skills-edit-form input[type=number]:focus{outline:none;border-color:var(--accent)}@media (max-width: 768px){.skills-edit-form{grid-template-columns:1fr}.student-item{flex-direction:column;align-items:flex-start;gap:12px}.student-actions{width:100%;justify-content:flex-end}}.bulk-add-modal{max-width:900px;max-height:90vh;overflow:scroll}.bulk-common-params{margin-bottom:24px;padding-bottom:24px;border-bottom:1px solid var(--border)}.bulk-common-params h3{font-size:18px;font-weight:600;margin:0 0 16px}.bulk-games-section{margin-top:24px}.bulk-games-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.bulk-games-header h3{font-size:18px;font-weight:600;margin:0}.btn-add-row{background-color:var(--accent);color:var(--text-primary);border:none;padding:8px 16px;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .2s}.btn-add-row:hover{background-color:var(--accent-hover)}.bulk-games-table-wrapper{overflow-x:auto;margin-bottom:16px}.bulk-games-table{width:100%;border-collapse:collapse;font-size:14px}.bulk-games-table thead{background-color:var(--bg-tertiary)}.bulk-games-table th{padding:12px;text-align:left;font-weight:600;color:var(--text-secondary);border-bottom:2px solid var(--border)}.bulk-games-table td{padding:8px;border-bottom:1px solid var(--border)}.bulk-games-table .game-row{transition:background-color .2s}.bulk-games-table .game-row.partially-filled{background-color:#ff00001a;border-left:3px solid #ff4444}.bulk-games-table .game-row.fully-filled{background-color:#00ff000d}.bulk-games-table input[type=text],.bulk-games-table input[type=number]{width:100%;padding:8px;background-color:var(--bg-tertiary);border:1px solid var(--border);border-radius:6px;color:var(--text-primary);font-size:14px}.bulk-games-table input[type=text]:focus,.bulk-games-table input[type=number]:focus{outline:none;border-color:var(--accent)}.bulk-games-table input.error{border-color:#f44;background-color:#ff00001a}.btn-remove-row{background:none;border:none;color:var(--text-secondary);font-size:24px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;border-radius:6px;transition:all .2s}.btn-remove-row:hover{background-color:var(--bg-tertiary);color:var(--text-primary)}.validation-error-message{background-color:#ff00001a;border:1px solid #ff4444;border-radius:8px;padding:12px;margin-bottom:16px;color:#f44;font-size:14px;font-weight:500}.row-error-message{background-color:#ff00001a;border-left:3px solid #ff4444;border-radius:4px;padding:8px 12px;margin-bottom:8px;color:#f44;font-size:13px}.save-results{margin-bottom:16px;padding:12px;border-radius:8px}.save-results.success{background-color:#00ff001a;border:1px solid #00cc00;color:#0c0}.save-results.has-errors{background-color:#ffc8001a;border:1px solid #ffcc00;color:#f90}.save-results-summary{font-weight:500;margin-bottom:8px}.save-results-errors{margin-top:8px;font-size:13px}.save-results-errors ul{margin:8px 0 0;padding-left:20px}.save-results-errors li{margin-bottom:4px}@media (max-width: 768px){.bulk-add-modal{max-width:100%;margin:10px}.bulk-games-table{font-size:12px}.bulk-games-table th,.bulk-games-table td{padding:6px}.bulk-games-header{flex-direction:column;align-items:flex-start;gap:12px}}.tournament-item{display:flex;flex-direction:column;padding:16px;background-color:var(--bg-tertiary);border:1px solid var(--border);border-radius:8px;transition:all .2s}.tournament-item:hover{border-color:var(--accent)}.tournament-item-header{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:8px}.tournament-item .tournament-name{font-size:16px;font-weight:500;color:var(--text-primary);margin:0;flex:1;min-width:0}.tournament-item .tournament-date{font-size:14px;color:var(--text-secondary);margin:0;flex-shrink:0}.tournament-item .tournament-description{font-size:14px;color:var(--text-secondary);line-height:1.5;margin:0}.tournament-status{padding:4px 12px;border-radius:12px;font-size:12px;font-weight:500;background-color:var(--bg-secondary);color:var(--text-secondary)}.add-tournament-modal{max-width:500px;max-height:90vh;overflow:scroll}.championships-page{padding:16px;min-height:100%;background:var(--bg-primary)}.championships-header{margin-bottom:20px}.championships-header h1{font-size:24px;font-weight:600;color:var(--text-primary);margin:0}.championships-tabs{display:flex;gap:8px;margin-bottom:24px;border-bottom:1px solid var(--border);padding-bottom:8px}.championship-tab{flex:1;padding:12px 16px;background:transparent;border:none;border-bottom:2px solid transparent;color:var(--text-secondary);font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.championship-tab:hover{color:var(--text-primary);background:var(--bg-secondary)}.championship-tab.active{color:var(--accent);border-bottom-color:var(--accent);background:var(--bg-secondary)}.championships-content{margin-top:20px}.championships-content h2{font-size:20px;font-weight:600;color:var(--text-primary);margin:0 0 20px}.tournaments-list{display:flex;flex-direction:column;gap:12px}.tournament-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:12px;padding:16px;transition:all .2s}.tournament-card:hover{border-color:var(--accent);box-shadow:0 2px 8px #0000001a}.tournament-date-time{display:flex;gap:12px;margin-bottom:12px;font-size:12px;color:var(--text-secondary)}.tournament-date{font-weight:500}.tournament-time{color:var(--accent)}.tournament-info{display:flex;align-items:center;gap:12px;margin-bottom:8px}.tournament-name{flex:1;font-size:16px;font-weight:500;color:var(--text-primary);text-align:left}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}.scores-table{background:var(--bg-secondary);border:1px solid var(--border);border-radius:12px;overflow:hidden}.scores-table-header{display:grid;grid-template-columns:60px 1fr 100px;gap:12px;padding:12px 16px;background:var(--bg-tertiary);font-size:12px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;border-bottom:1px solid var(--border)}.scores-table-body{display:flex;flex-direction:column}.scores-table-row{display:grid;grid-template-columns:60px 1fr 100px;gap:12px;padding:16px;border-bottom:1px solid var(--border);transition:background .2s}.scores-table-row:last-child{border-bottom:none}.scores-table-row:hover{background:var(--bg-tertiary)}.scores-table-row.top-three{background:#ffc1070d}.scores-col-position{font-weight:600;color:var(--text-primary);display:flex;align-items:center}.scores-col-player{font-weight:500;color:var(--text-primary)}.scores-col-points{text-align:center;color:var(--text-primary)}.scores-col-points{font-weight:600;color:var(--accent)}.participants-list{display:flex;flex-direction:column;gap:12px}.participant-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:12px;padding:16px;display:flex;justify-content:space-between;align-items:center;transition:all .2s}.participant-card:hover{border-color:var(--accent);box-shadow:0 2px 8px #0000001a}.participant-card.eliminated{opacity:.6;background:var(--bg-tertiary)}.participant-info{flex:1;display:flex;align-items:center}.participant-name{font-size:16px;font-weight:500;color:var(--text-primary);margin-bottom:4px}.participant-rating{font-size:14px;color:var(--text-secondary)}.participant-status{padding:6px 12px;border-radius:12px;font-size:12px;font-weight:500}.participant-status-active{background:#4caf501a;color:#4caf50}.participant-status-eliminated{background:#9e9e9e1a;color:#9e9e9e}.championship-empty{text-align:center;padding:60px 20px}.championship-empty-message{color:var(--text-secondary);font-size:16px}@media (max-width: 768px){.scores-table-header,.scores-table-row{grid-template-columns:50px 1fr 80px;gap:8px;padding:12px;font-size:14px}.scores-col-position,.scores-col-points{font-size:12px}}.app{min-height:100vh;display:flex;flex-direction:column;background-color:var(--bg-primary);color:var(--text-primary);padding-bottom:60px}.app-content{flex:1;overflow-y:auto}*{margin:0;padding:0;box-sizing:border-box}:root{--bg-primary: #0a0a0a;--bg-secondary: #1a1a1a;--bg-tertiary: #2a2a2a;--text-primary: #ffffff;--text-secondary: #b0b0b0;--accent: #4a9eff;--accent-hover: #5aaeff;--border: #333333;--success: #4ade80;--warning: #fbbf24;--error: #ef4444}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--bg-primary);color:var(--text-primary);min-height:100vh}#root{min-height:100vh;width:100%}button{font-family:inherit;cursor:pointer;border:none;outline:none}input,select{font-family:inherit;outline:none}
