:root{--bg-color: var(--tg-theme-bg-color, #1a1a2e);--text-color: var(--tg-theme-text-color, #ffffff);--hint-color: var(--tg-theme-hint-color, #999999);--link-color: var(--tg-theme-link-color, #5cabff);--button-color: var(--tg-theme-button-color, #5cabff);--button-text-color: var(--tg-theme-button-text-color, #ffffff);--secondary-bg: var(--tg-theme-secondary-bg-color, #2d2d44)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;background-color:var(--bg-color);color:var(--text-color);min-height:100vh;padding:16px}.container{max-width:100%;margin:0 auto}.header{text-align:center;margin-bottom:20px}.header h1{font-size:20px;font-weight:600;margin-bottom:4px}.header .group-name{font-size:14px;color:var(--hint-color)}.loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:200px;color:var(--hint-color)}.spinner{width:32px;height:32px;border:3px solid var(--secondary-bg);border-top-color:var(--button-color);border-radius:50%;animation:spin 1s linear infinite;margin-bottom:12px}@keyframes spin{to{transform:rotate(360deg)}}.error{text-align:center;padding:40px 20px;color:var(--hint-color)}.error-icon{font-size:48px;margin-bottom:16px}.error h2{font-size:18px;margin-bottom:8px;color:var(--text-color)}.error p{font-size:14px}.rating-list{display:flex;flex-direction:column;gap:8px}.rating-item{display:flex;align-items:center;padding:12px;background-color:var(--secondary-bg);border-radius:12px;gap:12px}.rating-item.current-user{background-color:var(--button-color);color:var(--button-text-color)}.rating-item.current-user .player-stats,.rating-item.current-user .player-level{color:#ffffffe6}.rating-item.current-user .stat-separator{color:#ffffff80}.rating-item.current-user .stat-win{color:#a5d6a7}.rating-item.current-user .stat-loss{color:#ef9a9a}.position{width:28px;height:28px;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;border-radius:50%;background-color:#ffffff1a;flex-shrink:0}.position.gold{background-color:gold;color:#000}.position.silver{background-color:silver;color:#000}.position.bronze{background-color:#cd7f32;color:#000}.player-info{flex:1;min-width:0}.player-name{font-weight:600;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.player-stats{font-size:12px;color:var(--hint-color);margin-top:2px;display:flex;align-items:center;gap:4px;flex-wrap:wrap}.stat-win{color:#4caf50}.stat-loss{color:#f44336}.stat-separator{color:var(--hint-color);opacity:.5}.player-score{display:flex;flex-direction:column;align-items:flex-end;flex-shrink:0}.player-points{font-weight:700;font-size:18px}.player-level{font-size:14px;font-weight:500;color:var(--hint-color);margin-top:2px}.empty-state{text-align:center;padding:40px 20px;color:var(--hint-color)}.empty-state-icon{font-size:48px;margin-bottom:16px}.empty-state h2{font-size:18px;margin-bottom:8px;color:var(--text-color)}.auth-prompt{text-align:center;padding:40px 20px}.auth-prompt h2{font-size:18px;margin-bottom:12px}.auth-prompt p{font-size:14px;color:var(--hint-color);margin-bottom:20px}.auth-button{background-color:var(--button-color);color:var(--button-text-color);border:none;padding:12px 24px;border-radius:8px;font-size:15px;font-weight:600;cursor:pointer}.auth-button:active{opacity:.8}.tabs{display:flex;gap:8px;margin-bottom:16px;overflow-x:auto;padding-bottom:4px}.tab{padding:8px 16px;background-color:var(--secondary-bg);border:none;border-radius:20px;color:var(--text-color);font-size:14px;font-weight:500;cursor:pointer;white-space:nowrap;flex-shrink:0}.tab.active{background-color:var(--button-color);color:var(--button-text-color)}.tab:active{opacity:.8}.logo{font-size:48px;margin-bottom:8px}.welcome-text{font-size:14px;color:var(--hint-color);margin-top:4px}.menu{display:flex;flex-direction:column;gap:12px;margin-top:24px}.menu-button{display:flex;align-items:center;width:100%;padding:16px;background-color:var(--secondary-bg);border:none;border-radius:12px;color:var(--text-color);font-size:16px;cursor:pointer;text-align:left;transition:transform .1s,opacity .1s}.menu-button:active:not(.disabled){transform:scale(.98);opacity:.9}.menu-button.disabled{opacity:.5;cursor:not-allowed}.menu-icon{font-size:24px;margin-right:12px;flex-shrink:0}.menu-text{flex:1;font-weight:500}.menu-arrow{font-size:18px;color:var(--hint-color)}.menu-soon{font-size:11px;color:var(--hint-color);background-color:#ffffff1a;padding:4px 8px;border-radius:10px}.menu-section{margin-top:8px;display:flex;flex-direction:column;gap:8px}.menu-section-title{font-size:13px;font-weight:600;color:var(--hint-color);text-transform:uppercase;letter-spacing:.5px;padding:8px 4px 4px}.group-badge{display:inline-block;font-size:12px;color:var(--button-color);background-color:#5cabff26;padding:4px 10px;border-radius:12px;margin-top:8px}.form{display:flex;flex-direction:column;gap:16px;margin-top:20px}.form-group{display:flex;flex-direction:column;gap:6px}.form-row{display:flex;gap:12px}.form-row .form-group{flex:1}.form-label{font-size:14px;font-weight:500;color:var(--hint-color)}.form-input,.form-select{width:100%;padding:14px 16px;background-color:var(--secondary-bg);border:1px solid transparent;border-radius:12px;color:var(--text-color);font-size:16px;outline:none;transition:border-color .2s}.form-input:focus,.form-select:focus{border-color:var(--button-color)}.form-select{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23999999' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6,9 12,15 18,9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:20px;padding-right:44px}.form-button{width:100%;padding:16px;background-color:var(--button-color);color:var(--button-text-color);border:none;border-radius:12px;font-size:16px;font-weight:600;cursor:pointer;transition:opacity .2s,transform .1s;margin-top:8px}.form-button:active:not(:disabled){transform:scale(.98);opacity:.9}.form-button:disabled{opacity:.6;cursor:not-allowed}.form-error{padding:12px 16px;background-color:#ff525226;border-radius:12px;color:#ff5252;font-size:14px;text-align:center}.form-info{padding:12px 16px;background-color:#5cabff26;border-radius:12px;color:var(--text-color);font-size:14px;font-weight:500}.form-hint{margin-top:8px;font-size:12px;color:var(--hint-color)}.success-message{text-align:center;padding:40px 20px}.success-icon{font-size:48px;margin-bottom:16px}.success-message p{font-size:16px;color:var(--text-color);margin-bottom:8px}.games-list{display:flex;flex-direction:column;gap:12px}.game-card{background-color:var(--secondary-bg);border-radius:12px;padding:16px}.game-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px}.game-name{font-weight:600;font-size:16px;flex:1}.game-status{font-size:12px;padding:4px 8px;border-radius:8px;white-space:nowrap}.game-status.status-pending{background-color:#ffc10733;color:#ffc107}.game-status.status-active{background-color:#4caf5033;color:#4caf50}.game-status.status-completed{background-color:#9e9e9e33;color:#9e9e9e}.game-status.status-cancelled{background-color:#f4433633;color:#f44336}.game-info{display:flex;flex-direction:column;gap:6px;font-size:14px;color:var(--hint-color)}.game-datetime,.game-location,.game-players,.game-type{display:flex;align-items:center;gap:6px}.location-link{color:var(--link-color);text-decoration:none}.location-link:hover{text-decoration:underline}.game-participants{margin-top:12px;padding-top:12px;border-top:1px solid rgba(255,255,255,.1);font-size:13px;color:var(--hint-color)}.participant-name{color:var(--link-color)}.more-participants{color:var(--hint-color)}.calendar-header{margin-bottom:24px}.calendar-event-info{background-color:var(--secondary-bg);border-radius:16px;padding:20px;margin-bottom:24px}.event-title{font-size:18px;font-weight:600;margin-bottom:12px;color:var(--text-color)}.event-datetime,.event-location{font-size:14px;color:var(--hint-color);display:flex;align-items:center;gap:8px;margin-bottom:6px}.event-location:last-child{margin-bottom:0}.calendar-buttons{display:flex;flex-direction:column;gap:12px}.calendar-button{display:flex;align-items:center;width:100%;padding:16px 20px;background-color:var(--secondary-bg);border:2px solid transparent;border-radius:16px;color:var(--text-color);font-size:16px;cursor:pointer;text-align:left;transition:transform .1s,border-color .2s,background-color .2s;gap:16px}.calendar-button:active{transform:scale(.98)}.calendar-button:hover{border-color:var(--button-color)}.calendar-button.google:hover{border-color:#4285f4}.calendar-button.apple:hover{border-color:var(--text-color)}.calendar-icon{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background-color:#ffffff1a;border-radius:12px;flex-shrink:0}.calendar-icon svg{width:24px;height:24px}.calendar-button.google .calendar-icon{background-color:#4285f426}.calendar-button.apple .calendar-icon{background-color:#ffffff1a}.calendar-text{font-weight:600;font-size:16px}.calendar-footer{margin-top:24px;padding-top:16px}.calendar-note{font-size:13px;color:var(--hint-color);text-align:center;line-height:1.5}.user-add-form{display:flex;gap:8px;margin-bottom:16px}.user-add-form .form-input{flex:1;padding:12px 14px}.add-user-button{width:48px;height:48px;background-color:var(--button-color);color:var(--button-text-color);border:none;border-radius:12px;font-size:24px;font-weight:500;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0}.add-user-button:disabled{opacity:.5;cursor:not-allowed}.users-list{display:flex;flex-direction:column;gap:8px}.user-item{display:flex;align-items:center;padding:12px;background-color:var(--secondary-bg);border-radius:12px;gap:12px}.user-info{flex:1;min-width:0}.user-name{font-weight:500;font-size:15px}.user-telegram{font-size:12px;color:var(--hint-color);margin-top:2px}.user-badges{display:flex;gap:4px}.badge{font-size:10px;padding:2px 6px;border-radius:4px;font-weight:600}.badge.telegram{background-color:#08c3;color:#08c}.user-edit-btn{width:36px;height:36px;background:transparent;border:none;cursor:pointer;font-size:16px;display:flex;align-items:center;justify-content:center;border-radius:8px}.user-edit-btn:active{background-color:#ffffff1a}.user-edit-form{display:flex;align-items:center;gap:8px;flex:1}.user-edit-form .form-input.compact{flex:1;padding:8px 12px;font-size:14px}.user-action-btn{width:32px;height:32px;border:none;border-radius:8px;font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center}.user-action-btn.save{background-color:#4caf50;color:#fff}.user-action-btn.cancel{background-color:var(--secondary-bg);color:var(--hint-color)}.user-action-btn:disabled{opacity:.5}.error-close{background:transparent;border:none;color:inherit;font-size:18px;cursor:pointer;margin-left:8px;padding:0;line-height:1}.game-manage-info{margin-top:8px}.game-manage-title{font-size:14px;color:var(--hint-color)}.game-manage-count{font-size:13px;color:var(--button-color);margin-top:4px}.section-title{font-size:12px;font-weight:600;color:var(--hint-color);text-transform:uppercase;letter-spacing:.5px;padding:8px 0;margin-bottom:8px}.empty-hint{font-size:13px;color:var(--hint-color);padding:12px;text-align:center}.participants-list{display:flex;flex-direction:column;gap:6px}.participant-item{display:flex;align-items:center;padding:10px 12px;background-color:var(--secondary-bg);border-radius:10px;gap:10px}.participant-info{flex:1;min-width:0}.participant-name{font-weight:500;font-size:14px}.participant-telegram{font-size:11px;color:var(--hint-color);margin-top:1px}.remove-btn{width:28px;height:28px;background-color:#f4433626;color:#f44336;border:none;border-radius:6px;font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0}.remove-btn:active{background-color:#f4433640}.remove-btn:disabled{opacity:.5;cursor:not-allowed}.available-users-list{display:flex;flex-direction:column;gap:6px}.add-participant-btn{display:flex;align-items:center;width:100%;padding:10px 12px;background-color:var(--secondary-bg);border:1px dashed rgba(255,255,255,.15);border-radius:10px;color:var(--text-color);cursor:pointer;text-align:left;gap:10px}.add-participant-btn:active:not(:disabled){background-color:#5cabff1a;border-color:var(--button-color)}.add-participant-btn:disabled{opacity:.5;cursor:not-allowed}.add-icon{width:24px;height:24px;background-color:var(--button-color);color:var(--button-text-color);border-radius:6px;font-size:16px;font-weight:600;display:flex;align-items:center;justify-content:center;flex-shrink:0}.add-name{font-weight:500;font-size:14px;flex:1}.add-telegram{font-size:12px;color:var(--hint-color)}.full-notice{margin-top:20px;padding:16px;background-color:#4caf5026;border-radius:12px;color:#4caf50;text-align:center;font-weight:500}.loading.compact{min-height:60px;padding:16px}.spinner.small{width:24px;height:24px;border-width:2px}.game-actions{margin-top:12px;padding-top:12px;border-top:1px solid rgba(255,255,255,.1);display:flex;gap:8px}.action-button{flex:1;padding:10px 12px;border:none;border-radius:10px;font-size:13px;font-weight:600;cursor:pointer;transition:opacity .2s,transform .1s}.action-button.primary{background-color:var(--button-color);color:var(--button-text-color)}.action-button.secondary{background-color:var(--secondary-bg);color:var(--text-color);border:1px solid rgba(255,255,255,.1)}.action-button.danger{background-color:#f4433626;color:#f44336;flex:0 0 auto;padding:10px 14px}.action-button:active:not(:disabled){transform:scale(.98);opacity:.9}.action-button:disabled{opacity:.6;cursor:not-allowed}.action-button.success{background-color:#4caf5026;color:#4caf50}.action-button.success:disabled{background-color:#9e9e9e26;color:#9e9e9e}.action-button.wide{flex:1 1 100%}.game-status-badge{display:inline-block;padding:6px 12px;border-radius:20px;font-size:12px;font-weight:600;margin-top:8px}.game-status-badge.active{background-color:#4caf5026;color:#4caf50}.game-status-badge.completed{background-color:#2196f326;color:#2196f3}.courts-grid{display:flex;flex-direction:column;gap:16px;margin-top:16px}.court-card{background-color:var(--secondary-bg);border-radius:16px;padding:16px;border:1px solid rgba(255,255,255,.08)}.court-card.winning-court{background:linear-gradient(135deg,#ffc10726,#ff98001a);border-color:#ffc1074d}.court-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid rgba(255,255,255,.1)}.court-name{font-weight:600;font-size:16px;color:var(--text-color)}.winning-court .court-name{color:#ffc107}.match-card{padding:8px;background-color:#0003;border-radius:12px;margin-bottom:8px}.match-card:last-child{margin-bottom:0}.match-team-row{display:flex;align-items:center;justify-content:space-between;padding:12px;border-radius:10px;margin-bottom:4px;background-color:#ffffff0d;transition:background-color .2s,transform .1s}.match-team-row:last-child{margin-bottom:0}.match-team-row.clickable{cursor:pointer}.match-team-row.clickable:active{transform:scale(.98)}.match-team-row.winner{background-color:#4caf5033;border:1px solid rgba(76,175,80,.4)}.match-team-row .team-players{font-size:14px;font-weight:500;color:var(--text-color);flex:1}.winner-badge{font-size:18px;margin-left:8px}.match-result-display{text-align:center;font-size:13px;color:var(--hint-color);padding:8px}.complete-game-button{width:100%;padding:16px;background-color:#4caf50;color:#fff;border:none;border-radius:12px;font-size:16px;font-weight:600;cursor:pointer;transition:opacity .2s,transform .1s;margin-top:20px}.complete-game-button:active:not(:disabled){transform:scale(.98);opacity:.9}.complete-game-button:disabled{opacity:.6;cursor:not-allowed}.game-details-hint{margin-top:16px;text-align:center}.game-details-hint p{font-size:12px;color:var(--hint-color)}.game-details-instructions{background-color:#5cabff26;border-radius:12px;padding:16px;margin-bottom:20px}.game-details-instructions h3{font-size:15px;font-weight:600;margin-bottom:8px;color:var(--button-color)}.game-details-instructions ol{margin:0;padding-left:20px;font-size:13px;color:var(--text-color);line-height:1.6}.game-details-instructions li{margin-bottom:4px}.court-teams-admin{display:flex;flex-direction:column;gap:8px}.team-slot{display:flex;align-items:center;gap:8px;padding:8px;background-color:#ffffff0d;border-radius:10px}.team-slot.winner{background-color:#4caf5033;border:1px solid rgba(76,175,80,.4)}.team-select{flex:1;padding:10px 32px 10px 12px;background-color:var(--secondary-bg);border:1px solid rgba(255,255,255,.1);border-radius:8px;color:var(--text-color);font-size:13px;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23999999' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6,9 12,15 18,9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center;background-size:16px}.team-select:focus{outline:none;border-color:var(--button-color)}.winner-btn{width:40px;height:40px;border:none;border-radius:8px;font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;background-color:#ffffff1a;color:var(--hint-color);transition:background-color .2s,color .2s,transform .1s}.winner-btn:active{transform:scale(.95)}.winner-btn.selected{background-color:#4caf50;color:#fff}.winner-btn:disabled{opacity:.5;cursor:not-allowed}.vs-divider{text-align:center;font-size:12px;font-weight:600;color:var(--hint-color);padding:4px 0}.court-teams-view{display:flex;flex-direction:column;gap:8px}.match-vs{text-align:center;font-size:12px;font-weight:600;color:var(--hint-color);padding:4px 0}
