:root{--bg-app: #232323;--bg-sidebar: #0d0d0d;--bg-main: #2b2b2b;--bg-card: #353535;--bg-card-hover: #3d3d3d;--border: #454545;--text-primary: #f5f5f5;--text-secondary: #a8a8a8;--accent: #f5f5f5;--accent-soft: rgba(255, 255, 255, .14);--accent-foreground: #111111;--shadow: 0 10px 30px rgba(0, 0, 0, .25);--radius: 16px}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{background:var(--bg-app);color:var(--text-primary);font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}.app-layout{display:flex;height:100vh;background:var(--bg-app);overflow:hidden}.sidebar{position:sticky;top:0;align-self:flex-start;width:84px;height:100vh;background:var(--bg-sidebar);border-right:1px solid #1b1b1b;display:flex;flex-direction:column;align-items:center;padding:18px 0;flex-shrink:0}.sidebar__nav{display:flex;flex-direction:column;align-items:center;gap:10px;width:100%}.sidebar__item{width:56px;height:56px;border-radius:18px;display:flex;align-items:center;justify-content:center;color:#fff;background:transparent;transition:background .2s ease,transform .2s ease,opacity .2s ease;opacity:.9}.sidebar__item:hover{background:#ffffff14;transform:translateY(-1px)}.sidebar__item--active{background:#ffffff1a}.sidebar__item svg{font-size:22px}.sidebar__footer{margin-top:auto;padding-top:16px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px}.sidebar__item--button{border:0;cursor:pointer;font:inherit}.sidebar__logo-image{width:44px;height:44px;object-fit:contain;opacity:.95}.main-content{flex:1;min-width:0;height:100vh;overflow-y:auto;background:var(--bg-main);padding:28px}.auth-page{min-height:100vh;width:100%;background:var(--bg-main);display:flex;align-items:center;justify-content:center;padding:24px}.auth-card{width:100%;max-width:420px}.auth-logo-wrap{display:flex;justify-content:center;margin-bottom:16px}.auth-logo{width:72px;height:72px;object-fit:contain}.auth-form{display:flex;flex-direction:column;gap:14px}.detail-page-title{display:inline-flex;align-items:center;gap:12px}@media(max-width:720px){.sidebar{width:72px}.sidebar__item{width:50px;height:50px;border-radius:16px}.main-content{padding:18px}.page-title{font-size:28px}}.page-container{width:100%;max-width:1180px;margin:0 auto}.page-header{margin-bottom:28px}.page-header__row{display:flex;align-items:center;justify-content:space-between;gap:16px}.page-header__title-group{min-width:0;display:flex;align-items:center}.page-header__actions{display:inline-flex;align-items:center;gap:10px;flex-shrink:0}.page-title{margin:0;font-size:34px;font-weight:700;letter-spacing:-.02em;line-height:1.05}.page-subtitle{margin:8px 0 0;color:var(--text-secondary);font-size:15px}.page-header-add-button{width:34px;height:34px;border:1px solid rgba(255,255,255,.08);border-radius:999px;background:var(--bg-sidebar);color:#fff;display:inline-flex;align-items:center;justify-content:center;padding:0;cursor:pointer;box-shadow:var(--shadow);transition:transform .15s ease,opacity .15s ease,background .15s ease}.page-header-add-button:hover{transform:translateY(-1px);opacity:.96}.page-header-add-button svg{font-size:12px}.detail-page-title{display:inline-flex;align-items:center;gap:12px;min-width:0}.detail-page-title__text{margin:0;font-size:34px;font-weight:700;letter-spacing:-.02em;line-height:1.05}.detail-page-back-link{width:34px;height:34px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;color:var(--text-secondary);transition:transform .15s ease,color .15s ease,background .15s ease}.detail-page-back-link:hover{background:#ffffff0f;color:var(--text-primary);transform:translate(-2px)}@media(max-width:720px){.page-title,.detail-page-title__text{font-size:28px}}.grid{display:grid;gap:18px}.grid--stats{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:24px}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.card--padded{padding:20px}.stat-card__label{color:var(--text-secondary);font-size:14px;margin-bottom:12px}.stat-card__value{font-size:34px;font-weight:700;line-height:1;margin-bottom:8px}.stat-card__hint{color:var(--text-secondary);font-size:13px}.section-title{margin:0 0 14px;font-size:18px;font-weight:600}.list{display:flex;flex-direction:column;gap:12px}.list-item{background:var(--bg-card);border:1px solid var(--border);border-radius:14px;padding:16px 18px;display:flex;align-items:center;justify-content:space-between;gap:16px;transition:background .2s ease,transform .2s ease}.list-item:hover{background:var(--bg-card-hover);transform:translateY(-1px)}.list-item__left{display:flex;flex-direction:column;gap:4px}.list-item__right{display:flex;align-items:center;gap:10px}.home-rank-pill{width:44px;height:44px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;background:#4a4a4a;border:1px solid #5b5b5b;font-size:16px;font-weight:700;color:var(--text-primary)}.home-top-player__main{display:inline-flex;align-items:center;gap:10px;min-width:0;flex:1}.home-top-player__level{display:inline-flex;align-items:center;justify-content:center;min-width:42px;height:24px;padding:0 8px;border-radius:999px;background:#ffffff0f;border:1px solid rgba(255,255,255,.1);color:var(--text-primary);font-size:12px;font-weight:700}.list-item__title{font-size:16px;font-weight:600}.list-item__subtitle{font-size:13px;color:var(--text-secondary)}.badge{display:inline-flex;align-items:center;justify-content:center;min-width:54px;padding:8px 12px;border-radius:999px;background:#e539351f;color:var(--accent);font-size:13px;font-weight:700;border:1px solid rgba(229,57,53,.2)}.panel{display:grid;grid-template-columns:1.2fr .8fr;gap:18px}.empty-state{min-height:220px;display:flex;align-items:center;justify-content:center;border:1px dashed #575757;border-radius:var(--radius);color:var(--text-secondary);background:#ffffff05;text-align:center;padding:24px}.muted{color:var(--text-secondary)}.page-toolbar{display:flex;justify-content:flex-end;margin-bottom:18px}.primary-button{height:44px;border:1px solid rgba(255,255,255,.08);border-radius:12px;background:var(--accent);color:#111;padding:0 18px;font-weight:700;cursor:pointer;transition:transform .15s ease,opacity .15s ease,background .15s ease}.primary-button:hover{transform:translateY(-1px);opacity:.92}.primary-button:disabled{opacity:.6;cursor:not-allowed;transform:none}.secondary-button{height:44px;border:1px solid var(--border);border-radius:12px;background:transparent;color:var(--text-primary);padding:0 16px;font-weight:600;cursor:pointer;transition:background .15s ease,transform .15s ease}.secondary-button:hover{background:#ffffff0a;transform:translateY(-1px)}.secondary-button:disabled{opacity:.6;cursor:not-allowed;transform:none}.icon-button{width:34px;height:34px;border-radius:10px;border:0;background:transparent;color:#999;font-size:18px;line-height:1;cursor:pointer;opacity:0;transition:opacity .15s ease,background .15s ease,color .15s ease}.list-item:hover .icon-button{opacity:1}.icon-button:hover{background:#ffffff0f;color:#fff}.icon-button--danger:hover{background:#e539352e;color:#ff8a80}.form-grid{display:grid;grid-template-columns:1.2fr 1fr .6fr;gap:14px}.form-field{display:flex;flex-direction:column;gap:8px}.form-label{font-size:14px;color:var(--text-secondary)}.form-input{width:100%;height:46px;border:1px solid var(--border);border-radius:12px;background:#2a2a2a;color:var(--text-primary);padding:0 14px;outline:none;transition:border-color .2s ease,box-shadow .2s ease}select.form-input{padding-right:38px;appearance:none;-webkit-appearance:none;-moz-appearance:none;background-image:url("data:image/svg+xml,%3Csvg width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23bbbbbb' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:12px}.form-input:focus{border-color:#ffffff73;box-shadow:0 0 0 3px #ffffff14}.form-input::placeholder{color:#7f7f7f}.form-actions{display:flex;justify-content:flex-start}.form-message{border-radius:12px;padding:12px 14px;font-size:14px}.form-message--error{background:#e539351f;border:1px solid rgba(229,57,53,.25);color:#ff9a98}.form-message--success{background:#3cb3711f;border:1px solid rgba(60,179,113,.25);color:#90e0b1}.modal-overlay{position:fixed;inset:0;background:#0000008c;display:flex;align-items:center;justify-content:center;padding:24px;z-index:1000}.modal-card{width:100%;max-width:460px;background:var(--bg-card);border:1px solid var(--border);border-radius:18px;box-shadow:0 20px 60px #00000073;padding:22px}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:18px}.modal-title{margin:0;font-size:22px;font-weight:700}.modal-subtitle{margin:6px 0 0;color:var(--text-secondary);font-size:14px}.modal-close-button{width:36px;height:36px;border:0;border-radius:10px;background:transparent;color:var(--text-secondary);font-size:24px;line-height:1;cursor:pointer}.modal-close-button:hover{background:#ffffff0d;color:var(--text-primary)}.modal-form{display:flex;flex-direction:column;gap:16px}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:6px}@media(max-width:980px){.grid--stats,.panel{grid-template-columns:1fr}}@media(max-width:900px){.form-grid{grid-template-columns:1fr}}.player-form{display:flex;flex-direction:column;gap:16px}.match-key-preview{min-height:46px;display:flex;align-items:center;padding:0 2px;color:var(--text-secondary);font-size:15px}.match-key-value{color:#ffffff4d}.list-item__main-link{flex:1;min-width:0;color:inherit;text-decoration:none}.list-item__main-link:hover .list-item__title{text-decoration:underline}.player-profile-title-with-back{display:inline-flex;align-items:center;gap:12px}.player-profile-back-link{width:34px;height:34px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;color:var(--text-secondary);transition:transform .15s ease,color .15s ease,background .15s ease}.player-profile-back-link:hover{background:#ffffff0f;color:var(--text-primary);transform:translate(-2px)}.player-profile-stats{margin-bottom:18px}.stat-card__value--small{font-size:20px;word-break:break-word}.stat-card--level-hero{min-height:132px;display:flex;flex-direction:column;justify-content:center;box-shadow:0 10px 24px #0003}.stat-card__label--level-hero{opacity:.9}.stat-card__value--level-hero{font-size:42px;font-weight:800;line-height:1;letter-spacing:-.03em}.stat-card__value--elo{font-weight:800}.elo-tier-beginner{color:#66bb6a}.elo-tier-developing{color:#ffee58}.elo-tier-competitive{color:#ff9800}.elo-tier-professional{color:#ff5252}.player-elo-legend__item.elo-tier-beginner{color:#66bb6a;border-color:#4caf5073;background:#4caf501f}.player-elo-legend__item.elo-tier-developing{color:#ffee58;border-color:#ffeb3b73;background:#ffeb3b1a}.player-elo-legend__item.elo-tier-competitive{color:#ff9800;border-color:#ff980073;background:#ff98001a}.player-elo-legend__item.elo-tier-professional{color:#ff5252;border-color:#ef535073;background:#ef53501f}.player-elo-card__header{display:flex;align-items:center;justify-content:space-between;gap:10px}.player-elo-help-button{width:24px;height:24px;border-radius:999px;border:1px solid rgba(255,255,255,.18);background:#ffffff0a;color:var(--text-secondary);font-size:12px;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:color .15s ease,border-color .15s ease,background .15s ease}.player-elo-help-button:hover{color:var(--text-primary);border-color:#ffffff4d;background:#ffffff14}.player-elo-legend{margin-top:8px;display:flex;flex-wrap:wrap;gap:8px}.player-elo-legend__item{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:700;background:#ffffff0d;border:1px solid rgba(255,255,255,.12)}.player-history-header .section-title{margin-bottom:14px}.player-history-list{display:flex;flex-direction:column;gap:12px}.player-history-list__section-label{margin:6px 0 2px;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-secondary)}.player-history-item{display:grid;grid-template-columns:120px minmax(0,1fr);overflow:hidden;border-radius:14px;background:#ffffff0a;border:1px solid rgba(255,255,255,.06)}.player-history-item__date-zone{background:#ffffff0f;border-right:1px solid rgba(255,255,255,.06);display:flex;align-items:center;justify-content:center;padding:16px 12px}.player-history-item__date-zone-value{color:var(--text-primary);font-size:13px;font-weight:700;text-align:center;line-height:1.3}.player-history-item__content{padding:14px 16px;display:flex;align-items:center;justify-content:space-between;gap:20px}.player-history-item__top-row{min-width:0;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.player-history-item__title{font-size:15px;font-weight:700;color:var(--text-primary)}.player-history-item__status-tag{display:inline-flex;align-items:center;justify-content:center;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:700;text-transform:capitalize;color:var(--text-secondary);background:#ffffff0f;border:1px solid rgba(255,255,255,.12)}.player-history-item__status-tag--ongoing{color:#81c784;border-color:#81c78459;background:#81c7841f}.player-history-rank-badge{display:inline-flex;align-items:center;justify-content:center;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:700;color:#ffe082;border:1px solid rgba(255,224,130,.35);background:#ffe0821f}.player-history-courts-row{display:inline-flex;align-items:center;gap:18px;flex-shrink:0}.player-history-court-wrapper{min-width:58px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px}.player-history-courts-arrow{display:inline-flex;align-items:center;justify-content:center;color:var(--text-secondary);font-size:12px}.player-history-court-value{min-width:34px;text-align:center;color:var(--text-primary);font-size:28px;font-weight:800;line-height:1;background:transparent;border:0;padding:0}.player-history-court-value--up{color:#7ddc82}.player-history-court-value--down{color:#ff8a80}.player-history-court-value--same{color:var(--text-primary)}.player-history-court-value--muted{color:var(--text-secondary)}@media(max-width:980px){.player-history-item{grid-template-columns:1fr}.player-history-item__date-zone{border-right:0;border-bottom:1px solid rgba(255,255,255,.06);justify-content:flex-start}.player-history-item__content{flex-direction:column;align-items:flex-start}.player-history-courts-row{align-self:flex-start}}.stat-card__value--truncate{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.players-controls{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:14px;align-items:end;margin-bottom:18px}.players-search{position:relative}.players-search__icon{position:absolute;top:50%;left:14px;transform:translateY(-50%);color:var(--text-secondary);pointer-events:none}.players-search__input{width:100%;height:46px;border:1px solid var(--border);border-radius:12px;background:#2a2a2a;color:var(--text-primary);padding:0 42px;outline:none;transition:border-color .2s ease,box-shadow .2s ease}.players-search__input:focus{border-color:#e53935a6;box-shadow:0 0 0 3px #e539351f}.players-search__input::placeholder{color:#7f7f7f}.players-search__clear{position:absolute;top:50%;right:10px;transform:translateY(-50%);width:28px;height:28px;border:0;border-radius:999px;background:transparent;color:var(--text-secondary);display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.players-search__clear:hover{background:#ffffff0f;color:var(--text-primary)}.players-sort{display:flex;flex-direction:column;gap:8px}.players-sort__label{font-size:14px;color:var(--text-secondary)}.players-sort__select{width:100%;height:46px;border:1px solid var(--border);border-radius:12px;background:#2a2a2a;color:var(--text-primary);padding:0 14px;outline:none;transition:border-color .2s ease,box-shadow .2s ease}.players-sort__select:focus{border-color:#e53935a6;box-shadow:0 0 0 3px #e539351f}.players-list-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.players-list-header .section-title{margin-bottom:0}.players-list-count{color:var(--text-secondary);font-size:13px}@media(max-width:900px){.players-controls{grid-template-columns:1fr}}.players-search-group{display:flex;flex-direction:column;gap:8px}.players-search__label{font-size:14px;color:var(--text-secondary)}.players-sort__select{width:100%;height:46px;border:1px solid var(--border);border-radius:12px;background:#2a2a2a;color:var(--text-primary);padding:0 40px 0 14px;outline:none;transition:border-color .2s ease,box-shadow .2s ease;appearance:none;-webkit-appearance:none;-moz-appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--text-secondary) 50%),linear-gradient(135deg,var(--text-secondary) 50%,transparent 50%);background-position:calc(100% - 18px) calc(50% - 3px),calc(100% - 12px) calc(50% - 3px);background-size:6px 6px,6px 6px;background-repeat:no-repeat}.player-item--link{display:flex;align-items:center;justify-content:space-between;gap:14px}.player-row-chevron{width:34px;height:34px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;color:var(--text-secondary);flex-shrink:0;transition:transform .15s ease,color .15s ease,background .15s ease}.player-row-chevron svg{font-size:14px}.player-item--link:hover .player-row-chevron{transform:translate(4px);color:var(--text-primary);background:#ffffff0d}.tournaments-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}.tournaments-toolbar__left{display:flex;flex-direction:column;gap:6px}.tournaments-toolbar__title{margin:0;font-size:18px;font-weight:700}.tournaments-toolbar__subtitle{margin:0;color:var(--text-secondary);font-size:14px}.tournaments-page-section{margin-bottom:36px}.tournaments-events-header{display:inline-flex;align-items:center;gap:12px;margin-bottom:14px}.tournaments-events-header .section-title{margin:0}.tournaments-events-header__add{width:36px;height:36px;border-radius:10px}.tournaments-page-section__intro{margin:0 0 16px;font-size:14px;line-height:1.45;max-width:640px}.tournament-recurring-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.tournament-recurring-card{background:var(--bg-card);border:1px solid var(--border);border-radius:16px;padding:16px 16px 14px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:14px;min-height:100%}.tournament-recurring-card__top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.tournament-recurring-card__titles{min-width:0;display:flex;flex-direction:column;gap:6px}.tournament-recurring-card__name{margin:0;font-size:16px;font-weight:700;color:var(--text-primary);line-height:1.25}.tournament-recurring-card__schedule{margin:0;font-size:13px;color:var(--text-secondary)}.tournament-recurring-card__format{align-self:flex-start;margin-top:2px}.tournament-recurring-card__note{margin:4px 0 0;font-size:12px;line-height:1.4}.tournament-recurring-card__add{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:12px;border:1px solid var(--border);background:#ffffff0a;color:var(--text-primary);cursor:pointer;transition:background .15s ease,border-color .15s ease,transform .15s ease}.tournament-recurring-card__add:hover{background:#ffffff14;border-color:#ffffff1f;transform:translateY(-1px)}.tournament-recurring-card__dates{border-top:1px solid rgba(255,255,255,.06);padding-top:12px}.tournament-recurring-card__dates-label{margin:0 0 8px;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--text-secondary)}.tournament-recurring-card__empty{margin:0;font-size:13px}.tournament-recurring-card__date-list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:6px}.tournament-recurring-card__date-link{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;border-radius:10px;font-size:14px;font-weight:600;color:var(--text-primary);text-decoration:none;border:1px solid rgba(255,255,255,.08);background:#ffffff08;transition:border-color .15s ease,background .15s ease,transform .15s ease}.tournament-recurring-card__date-link:hover{border-color:#ffffff29;background:#ffffff0f;transform:translate(2px)}.tournament-recurring-card__date-link svg{font-size:12px;color:var(--text-secondary)}.tournaments-one-off-empty{border-style:dashed}.tournaments-one-off-empty__text{margin:0}.tournament-modal-hint{margin:8px 0 0;font-size:12px}.tournament-list-grouped{display:flex;flex-direction:column;gap:22px}.tournament-list-section__title{margin:0 0 10px;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-secondary)}.tournament-list{display:flex;flex-direction:column;gap:14px}.tournament-item__champion{margin-top:4px;font-size:13px;font-weight:600;color:var(--text-primary)}.tournament-item__champion--pending{font-weight:500;color:var(--text-secondary)}.tournament-item{background:var(--bg-card);border:1px solid var(--border);border-radius:16px;padding:18px;display:flex;align-items:center;justify-content:space-between;gap:18px;box-shadow:var(--shadow);transition:background .2s ease,transform .2s ease,border-color .2s ease}.tournament-item:hover{background:var(--bg-card-hover);transform:translateY(-1px)}.tournament-item__left{display:flex;flex-direction:column;gap:6px;min-width:0}.tournament-item__name{margin:0;font-size:17px;font-weight:700;color:var(--text-primary)}.tournament-item__meta{display:flex;align-items:center;flex-wrap:wrap;gap:10px;color:var(--text-secondary);font-size:13px}.tournament-item__right{display:flex;align-items:center;gap:10px;flex-shrink:0}.tournament-status{display:inline-flex;align-items:center;justify-content:center;min-width:84px;padding:8px 12px;border-radius:999px;font-size:12px;font-weight:700;text-transform:capitalize;border:1px solid transparent}.tournament-status--draft{background:#ffffff0f;color:#d0d0d0;border-color:#ffffff14}.tournament-status--ready{background:#508cff24;color:#9dc0ff;border-color:#508cff38}.tournament-status--ongoing{background:#2ecc7124;color:#8ff0b6;border-color:#2ecc7138}.tournament-status--finished{background:#aa78ff24;color:#cdb0ff;border-color:#aa78ff38}.tournament-format{display:inline-flex;align-items:center;padding:7px 10px;border-radius:999px;background:#ffffff0a;color:var(--text-secondary);border:1px solid rgba(255,255,255,.06);font-size:12px;font-weight:600}.empty-state--tournaments{min-height:280px;flex-direction:column;gap:12px}.empty-state__icon{font-size:34px}.empty-state__title{margin:0;font-size:20px;font-weight:700;color:var(--text-primary)}.empty-state__description{margin:0;max-width:440px;color:var(--text-secondary);font-size:14px;line-height:1.5}.tournament-modal-form{display:flex;flex-direction:column;gap:16px}.tournament-modal-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}@media(max-width:720px){.tournaments-toolbar{flex-direction:column;align-items:stretch}.tournament-item{flex-direction:column;align-items:flex-start}.tournament-item__right{width:100%;justify-content:flex-start;flex-wrap:wrap}.tournament-modal-grid{grid-template-columns:1fr}}.tournament-detail-topbar{display:flex;justify-content:flex-start;margin-bottom:18px}.tournament-detail-hero{margin-bottom:18px}.tournament-detail-hero__main{display:flex;align-items:center;justify-content:space-between;gap:16px}.tournament-detail-hero__meta{display:flex;align-items:center;flex-wrap:wrap;gap:10px;color:var(--text-secondary);font-size:14px}.tournament-detail-hero__meta span{display:inline-flex;align-items:center}.tournament-detail-hero__status{display:flex;align-items:center;justify-content:flex-end}.tournament-detail-hero__actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:10px}.tournament-hero-icon-button{width:42px;height:42px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;padding:0;font-size:18px;line-height:1;cursor:pointer;border:1px solid rgba(255,255,255,.14);background:#ffffff0f;color:var(--text-primary);transition:background .15s ease,border-color .15s ease,opacity .15s ease}.tournament-hero-icon-button:hover:not(:disabled){background:#ffffff1a;border-color:#ffffff38}.tournament-hero-icon-button:disabled{opacity:.55;cursor:not-allowed}.tournament-hero-icon-button--success{border-color:#81c78473;background:#81c78424;color:#c8e6c9}.tournament-hero-icon-button--success:hover:not(:disabled){background:#81c78438;border-color:#81c7848c}.tournament-hero-icon-button--danger:hover:not(:disabled){background:#e539352e;border-color:#e5393559;color:#ff8a80}.tournament-hero-icon-button__busy{font-size:16px;font-weight:700;letter-spacing:.06em}.tournament-detail-hero__action-error{margin-bottom:12px}.tournament-status-pill{display:inline-flex;align-items:center;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:600;letter-spacing:.02em;border:1px solid var(--border-subtle, rgba(255, 255, 255, .12));color:var(--text-secondary);background:#ffffff0a}.tournament-status-pill--finished{color:var(--text-primary);border-color:#4ade8059;background:#4ade801f}.tournament-status-pill--ongoing{border-color:#60a5fa66;background:#60a5fa1a}.tournament-status-pill--ready{border-color:#facc1559;background:#facc1514}.tournament-detail-grid{display:grid;grid-template-columns:1fr;gap:18px}.tournament-detail-section__header{margin-bottom:16px}.tournament-detail-section__description{margin:-4px 0 0;color:var(--text-secondary);font-size:14px}.tournament-placeholder{min-height:170px}.tournament-placeholder__title{margin:0 0 8px;font-size:16px;font-weight:700;color:var(--text-primary)}.tournament-placeholder__description{margin:0;max-width:520px;color:var(--text-secondary);font-size:14px;line-height:1.5}.tournament-detail-back{margin-top:18px}@media(max-width:720px){.tournament-detail-hero__main{flex-direction:column;align-items:flex-start}.tournament-detail-hero__status{justify-content:flex-start}.tournament-detail-hero__actions{justify-content:flex-start;width:100%}.tournament-detail-hero__actions .primary-button,.tournament-detail-hero__actions .secondary-button{flex:1 1 auto;min-width:0}}.tournament-row-link{width:34px;height:34px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;color:var(--text-secondary);background:transparent;transition:background .15s ease,transform .15s ease,color .15s ease}.tournament-row-link svg{font-size:14px}.tournament-row-link:hover{background:#ffffff0f;color:var(--text-primary);transform:translate(2px)}.tournament-title-with-back{display:inline-flex;align-items:center;gap:12px}.tournament-back-link:hover{background:#ffffff0f;color:var(--text-primary);transform:translate(-2px)}.tournament-item--link{text-decoration:none;color:inherit}.tournament-item--link:hover{border-color:#ffffff24}.tournament-row-chevron{width:34px;height:34px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;color:var(--text-secondary);transition:transform .15s ease,color .15s ease,background .15s ease}.tournament-row-chevron svg{font-size:14px}.tournament-item--link:hover .tournament-row-chevron{transform:translate(4px);color:var(--text-primary);background:#ffffff0d}.tournament-item--link:active{transform:scale(.997)}.tournament-import{display:flex;flex-direction:column;gap:18px}.tournament-import__intro{margin-bottom:2px}.tournament-import__description{margin:0;color:var(--text-secondary);font-size:14px;line-height:1.5}.tournament-import__description code{font-family:inherit;color:var(--text-primary);background:#ffffff0f;padding:2px 6px;border-radius:8px}.tournament-import__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px}.tournament-import__composer,.tournament-import__preview{min-height:100%}.tournament-import__block-header{margin-bottom:14px}.tournament-import__textarea{width:100%;min-height:240px;resize:vertical;border:1px solid var(--border);border-radius:12px;background:#2a2a2a;color:var(--text-primary);padding:14px;outline:none;line-height:1.5;transition:border-color .2s ease,box-shadow .2s ease}.tournament-import__textarea:focus{border-color:#ffffff73;box-shadow:0 0 0 3px #ffffff14}.tournament-import__textarea::placeholder{color:#7f7f7f}.tournament-import__actions{display:flex;justify-content:flex-end;gap:10px;margin-top:14px}.tournament-import-preview{display:flex;flex-direction:column;gap:18px}.tournament-import-preview__stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.tournament-import-stat{display:flex;flex-direction:column;gap:6px;padding:12px;border-radius:12px;background:#ffffff0a;border:1px solid rgba(255,255,255,.05)}.tournament-import-stat__value{font-size:22px;font-weight:700;color:var(--text-primary)}.tournament-import-stat__label{font-size:12px;color:var(--text-secondary)}.tournament-import-preview__section{display:flex;flex-direction:column;gap:10px}.tournament-import-preview__title{margin:0;font-size:15px;font-weight:700;color:var(--text-primary)}.tournament-import-preview__rows{display:flex;flex-direction:column;gap:8px}.tournament-import-row{display:flex;flex-direction:column;gap:4px;padding:10px 12px;border-radius:12px;background:#ffffff0a;border:1px solid rgba(255,255,255,.05)}.tournament-import-row__primary{font-size:14px;color:var(--text-primary)}.tournament-import-row__secondary{font-size:13px;color:var(--text-secondary)}@media(max-width:980px){.tournament-import__grid{grid-template-columns:1fr}.tournament-import-preview__stats{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.tournament-import-preview__stats{grid-template-columns:1fr}.tournament-import__actions{flex-direction:column;align-items:stretch}}.tournament-import-row__content{display:flex;flex-direction:column;gap:4px}.tournament-import-row__content--split{flex-direction:row;align-items:center;justify-content:space-between;gap:16px}.tournament-import-row__text{display:flex;flex-direction:column;gap:4px;min-width:0}.tournament-import-row__actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.tournament-inline-level-input{width:84px;height:38px;border:1px solid var(--border);border-radius:10px;background:#2a2a2a;color:var(--text-primary);padding:0 10px;outline:none;transition:border-color .2s ease,box-shadow .2s ease}.tournament-inline-level-input:focus{border-color:#ffffff73;box-shadow:0 0 0 3px #ffffff14}.tournament-inline-level-input::placeholder{color:#7f7f7f}.tournament-inline-create-button{width:38px;height:38px;border:1px solid rgba(255,255,255,.08);border-radius:10px;background:var(--accent);color:var(--accent-foreground, #111111);font-size:20px;font-weight:700;line-height:1;cursor:pointer;transition:transform .15s ease,opacity .15s ease}.tournament-inline-create-button:hover{transform:translateY(-1px);opacity:.92}.tournament-inline-create-button:disabled{opacity:.6;cursor:not-allowed;transform:none}@media(max-width:720px){.tournament-import-row__content--split{flex-direction:column;align-items:stretch}.tournament-import-row__actions{justify-content:flex-end}.tournament-inline-level-input{width:100%}}.tournament-imported-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.tournament-imported-list__item{min-width:0}@media(max-width:900px){.tournament-imported-list{grid-template-columns:1fr}}.tournament-imported-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.tournament-imported-header .section-title{margin-bottom:0}.tournament-clear-button{height:36px;border:1px solid var(--border);border-radius:10px;background:transparent;color:var(--text-secondary);padding:0 12px;display:inline-flex;align-items:center;gap:8px;cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease}.tournament-clear-button:hover:not(:disabled){background:#ffffff0a;color:var(--text-primary);border-color:#ffffff1f}.tournament-clear-button:disabled{opacity:.5;cursor:not-allowed}.tournament-player-delete-button{opacity:1}.tournament-player-delete-button:disabled{opacity:.45;cursor:not-allowed}@media(max-width:720px){.tournament-imported-header{flex-direction:column;align-items:stretch}.tournament-clear-button{justify-content:center}}.tournament-imported-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.tournament-courts-builder{display:flex;flex-direction:column;gap:18px}.tournament-courts-builder__header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px}.tournament-courts-builder__stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.tournament-courts-layout{display:grid;grid-template-columns:320px 1fr;gap:18px}.tournament-stock-header{margin-bottom:14px}.tournament-stock-empty,.tournament-court-empty{min-height:140px}.tournament-courts-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.tournament-court-card__header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}.tournament-court-card__header-main{width:100%;min-width:0}.tournament-court-card__header-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.tournament-court-card__header-top .section-title,.tournament-court-card__header .section-title{margin:0}.tournament-player-chip-list{display:flex;flex-direction:column;gap:10px}.tournament-player-chip{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-radius:12px;background:#ffffff0a;border:1px solid rgba(255,255,255,.06)}.tournament-player-chip__content{display:flex;flex-direction:column;gap:4px;min-width:0}.tournament-player-chip__name{font-size:14px;font-weight:600;color:var(--text-primary)}.tournament-player-chip__meta{font-size:13px;color:var(--text-secondary)}.tournament-player-chip__actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.tournament-chip-stock-button{height:38px;padding:0 12px}.tournament-move-select{width:140px;height:38px;padding-top:0;padding-bottom:0}.tournament-courts-savebar{display:flex;justify-content:flex-end;gap:10px}@media(max-width:1100px){.tournament-courts-layout,.tournament-courts-grid{grid-template-columns:1fr}}@media(max-width:720px){.tournament-imported-summary,.tournament-courts-builder__stats{grid-template-columns:1fr}.tournament-courts-builder__header,.tournament-player-chip,.tournament-player-chip__actions{flex-direction:column;align-items:stretch}.tournament-move-select{width:100%}.tournament-courts-savebar{justify-content:stretch}.tournament-courts-savebar .primary-button,.tournament-courts-savebar .secondary-button,.tournament-courts-savebar .tournament-copy-whatsapp-button{width:100%}}.tournament-courts-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px}.tournament-courts-toolbar__left,.tournament-courts-toolbar__right{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.tournament-chip-delete-button{opacity:0}.tournament-player-chip:hover .tournament-chip-delete-button{opacity:1}.tournament-chip-delete-button:disabled{opacity:.45;cursor:not-allowed}.tournament-courts-toolbar .tournament-clear-button{width:38px;height:38px;padding:0;justify-content:center}.tournament-chaos-button{display:inline-flex;align-items:center;gap:8px}.tournament-courts-builder__subtitle{margin:6px 0 0;color:var(--text-secondary);font-size:14px}.tournament-courts-grid--full{grid-template-columns:repeat(4,minmax(0,1fr))}.tournament-court-dropzone{border-radius:16px;transition:box-shadow .15s ease,transform .15s ease}.tournament-court-dropzone--over .card{border-color:#ffffff2e;box-shadow:0 0 0 2px #ffffff0f}.tournament-courts-stock-card .tournament-player-chip{width:100%}.tournament-drop-placeholder{width:100%;min-height:50px;padding:12px 14px;margin-bottom:10px;border-radius:12px;border:1px dashed rgba(255,255,255,.16);background:#ffffff08;color:var(--text-secondary);font-size:13px;display:flex;align-items:center}.tournament-player-chip--sortable{gap:10px}.tournament-player-chip--dragging{opacity:.55}.tournament-player-chip__drag-handle{width:32px;height:32px;border:0;border-radius:10px;background:transparent;color:var(--text-secondary);cursor:grab;flex-shrink:0;font-size:14px;line-height:1}.tournament-player-chip__drag-handle:hover{background:#ffffff0d;color:var(--text-primary)}.tournament-player-chip__drag-handle:active{cursor:grabbing}.tournament-court-count--invalid{color:#ff9a98}@media(max-width:1400px){.tournament-courts-grid--full{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:1100px){.tournament-courts-grid--full{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:720px){.tournament-courts-grid--full{grid-template-columns:1fr}}.tournament-player-chip--active{z-index:2}.tournament-player-chip--dragging{opacity:.45}.tournament-player-chip{display:flex;align-items:center;gap:12px}.tournament-player-chip__content{display:flex;align-items:center;gap:10px;flex:1;min-width:0}.tournament-player-chip__name{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tournament-level-badge{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:22px;padding:0 8px;border-radius:999px;font-size:12px;font-weight:700;letter-spacing:.02em}.tournament-elo-badge{display:inline-flex;align-items:center;justify-content:center;min-width:62px;height:22px;padding:0 8px;border-radius:999px;font-size:11px;font-weight:700;letter-spacing:.02em}.tournament-player-chip__badges{display:flex;align-items:center;gap:8px}.tier-red{background:#ef535040;color:#ff5252;border:1px solid rgba(239,83,80,.6)}.tier-orange{background:#ff980047;color:#ff9800;border:1px solid rgba(255,152,0,.7)}.tier-yellow{background:#ffeb3b47;color:#ffee58;border:1px solid rgba(255,235,59,.7)}.tier-green{background:#4caf5047;color:#66bb6a;border:1px solid rgba(76,175,80,.7)}.tournament-player-chip__actions{margin-left:auto}.tournament-court-delete-button{opacity:0;flex-shrink:0;transition:opacity .15s ease}.tournament-court-dropzone:hover .tournament-court-delete-button{opacity:1}.tournament-court-delete-button:disabled{opacity:.45;cursor:not-allowed}.tournament-copy-whatsapp-button{width:42px;height:42px;padding:0;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;gap:0}.tournament-copy-whatsapp-button svg{font-size:18px}.tournament-copy-whatsapp-button:disabled{opacity:.6}.tournament-import-row__content--matched{align-items:center}.tournament-import-row__text--inline{width:auto;flex-direction:row;align-items:center;justify-content:flex-start;gap:8px}.tournament-import-row__level{display:inline-flex;align-items:center;justify-content:center;min-width:42px;height:24px;padding:0 8px;border-radius:999px;background:#ffffff0f;color:var(--text-primary);font-size:12px;font-weight:700;flex-shrink:0}.tournament-results{display:flex;flex-direction:column;gap:18px}.tournament-results__groups{display:grid;grid-template-columns:1fr;gap:18px}.tournament-results-group__header .section-title{margin:0 0 14px}.tournament-results-list{display:flex;flex-direction:column;gap:12px}.tournament-results-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 14px;border-radius:12px;background:#ffffff0a;border:1px solid rgba(255,255,255,.06)}.tournament-results-row__main{display:flex;align-items:center;gap:10px;min-width:0}.tournament-results-row__name{font-size:14px;font-weight:600;color:var(--text-primary)}.tournament-results-row__controls{display:flex;align-items:center;gap:10px;flex-shrink:0}.tournament-results-row__label{font-size:13px;color:var(--text-secondary)}.tournament-results-row__select{width:140px;height:38px}.tournament-results__savebar{display:flex;justify-content:flex-end}@media(max-width:720px){.tournament-results-row,.tournament-results-row__controls{flex-direction:column;align-items:stretch}.tournament-results-row__select,.tournament-results__savebar .primary-button{width:100%}}.tournament-results-court-card{border:1px solid transparent;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}.tournament-results-court-card--active{border-color:#ffffff2e;box-shadow:0 0 0 2px #ffffff0f}.tournament-results-court-select{width:100%;background:transparent;border:0;padding:0;text-align:left;cursor:pointer}.tournament-results-builder{display:flex;flex-direction:column;gap:18px}.tournament-results-layout{align-items:start}.tournament-results-stock-card{min-height:100%}.tournament-results-stock-list{max-height:70vh;overflow-y:auto;padding-right:4px}.tournament-results-courts-grid{min-width:0}.tournament-results-court-card{width:100%;border:2px solid rgba(255,255,255,.06);background:var(--bg-card);text-align:left;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}.tournament-results-court-card .section-title{margin:0;color:var(--text-primary)}.tournament-results-court-card:hover{border-color:#ffffff24}.tournament-results-court-card--active{border-color:#66bb6a;box-shadow:0 0 0 3px #66bb6a2e}.tournament-results-inline-crown{width:30px;height:30px;border:0;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;background:transparent;cursor:pointer;transition:background .15s ease,color .15s ease,transform .15s ease}.tournament-results-inline-crown:hover{transform:translateY(-1px);background:#ffffff0f}.tournament-results-inline-crown--empty{color:#ffffff3d}.tournament-results-inline-crown--filled{color:#d4af37}.tournament-results-player-button{width:100%;border:0;text-align:left;cursor:pointer;transition:transform .15s ease,border-color .15s ease,background .15s ease}.tournament-results-player-button:hover{transform:translateY(-1px);border-color:#ffffff1f}.tournament-results-empty-slot{min-height:50px;padding:12px 14px;border-radius:12px;border:1px dashed rgba(255,255,255,.12);color:var(--text-secondary);font-size:13px;display:flex;align-items:center}.tournament-results-savebar{display:flex;justify-content:flex-end}@media(max-width:720px){.tournament-results-savebar .primary-button{width:100%}}.tournament-import__grid--three-columns{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(320px,.9fr);align-items:start}.tournament-import__registered{min-height:100%}.tournament-import-empty-state{min-height:240px}.tournament-import-registered-list{display:flex;flex-direction:column;gap:10px;max-height:70vh;overflow-y:auto;padding-right:4px}.tournament-import-list-warning{margin-bottom:12px;padding:10px 12px;border-radius:12px;background:#ffffff0a;border:1px solid rgba(255,255,255,.08);color:var(--text-secondary);font-size:13px;line-height:1.4}.tournament-import-row__text--inline{flex-direction:row;align-items:center;gap:10px;flex-wrap:wrap}@media(max-width:1240px){.tournament-import__grid--three-columns{grid-template-columns:1fr 1fr}.tournament-import__registered{grid-column:1 / -1}}@media(max-width:980px){.tournament-import__grid--three-columns{grid-template-columns:1fr}.tournament-import__registered{grid-column:auto}}.tournament-import-preview__section-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.tournament-player-chip__actions{display:inline-flex;align-items:center;gap:8px}.tournament-group-phase{display:flex;flex-direction:column;gap:18px}.tournament-group-phase-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:18px;align-items:start}.tournament-group-phase-courts{display:flex;flex-direction:column;gap:18px;min-width:0}.tournament-group-phase-sidebar{position:sticky;top:24px}.tournament-group-phase-card{display:flex;flex-direction:column;gap:18px}.tournament-group-phase-players{display:flex;flex-wrap:wrap;gap:8px}.tournament-group-phase-player-pill{display:inline-flex;align-items:center;gap:8px;min-height:34px;padding:0 12px;border-radius:999px;background:#ffffff0d;border:1px solid rgba(255,255,255,.07);font-size:13px;color:var(--text-primary)}.tournament-group-phase-ranking{display:flex;flex-direction:column;gap:12px}.tournament-group-phase-ranking-row{display:grid;grid-template-columns:28px minmax(0,1fr) 56px 56px;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;background:#ffffff0a;border:1px solid rgba(255,255,255,.05)}.tournament-group-phase-ranking-rank{font-size:13px;font-weight:700;color:var(--text-secondary)}.tournament-group-phase-ranking-name{min-width:0;font-size:14px;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tournament-group-phase-ranking-stat{text-align:right;font-size:13px;color:var(--text-secondary)}.tournament-group-phase-ranking-stat--points{font-weight:700;color:var(--text-primary)}.tournament-group-phase-savebar{display:flex;justify-content:flex-end}@media(max-width:1100px){.tournament-group-phase-layout{grid-template-columns:1fr}.tournament-group-phase-sidebar{position:static}}@media(max-width:720px){.tournament-group-phase-match{grid-template-columns:1fr;gap:8px}.tournament-group-phase-team--right{text-align:left}.tournament-group-phase-separator{display:none}.tournament-group-phase-savebar .primary-button{width:100%}}@media(max-width:980px){.tournament-group-phase-card-layout{grid-template-columns:1fr}.tournament-group-phase-card-side{padding-left:0;border-left:0;padding-top:6px;border-top:1px solid rgba(255,255,255,.08)}}.tournament-detail-tabs-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}.tournament-detail-tabs-actions{display:inline-flex;align-items:center;gap:10px;flex-shrink:0}.tournament-group-phase,.tournament-group-phase-courts,.tournament-group-phase-card{display:flex;flex-direction:column;gap:18px}.tournament-group-phase-header{display:flex;flex-direction:column;gap:6px}.tournament-group-phase-card-layout{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:18px;align-items:start}.tournament-group-phase-card-main{min-width:0}.tournament-group-phase-card-side{min-width:0;padding-left:18px;border-left:1px solid rgba(255,255,255,.08);display:flex;flex-direction:column;gap:14px}.tournament-group-phase-side-title{margin:0 0 10px;font-size:14px;font-weight:700;color:var(--text-primary)}.tournament-group-phase-matches{display:flex;flex-direction:column;gap:12px}.tournament-group-phase-match{display:grid;grid-template-columns:minmax(0,1fr) 56px 20px 56px minmax(0,1fr);align-items:center;gap:10px;padding:12px 14px;border-radius:14px;background:#ffffff0a;border:1px solid rgba(255,255,255,.06)}.tournament-group-phase-team{min-width:0;font-size:14px;font-weight:600;color:var(--text-primary);line-height:1.35}.tournament-group-phase-team--right{text-align:right}.tournament-group-phase-score{width:100%;height:40px;border:1px solid var(--border);border-radius:10px;background:#2a2a2a;color:var(--text-primary);text-align:center;outline:none;transition:border-color .2s ease,box-shadow .2s ease}.tournament-group-phase-score:focus{border-color:#ffffff73;box-shadow:0 0 0 3px #ffffff14}.tournament-group-phase-separator{text-align:center;color:var(--text-secondary);font-weight:700}.tournament-group-phase-court-ranking{display:flex;flex-direction:column;gap:10px}.tournament-group-phase-court-ranking-row{display:grid;grid-template-columns:24px minmax(0,1fr) 48px;gap:10px;align-items:center;padding:10px 12px;border-radius:12px;background:#ffffff0a;border:1px solid rgba(255,255,255,.05)}.tournament-group-phase-court-ranking-rank{font-size:13px;font-weight:700;color:var(--text-secondary)}.tournament-group-phase-court-ranking-name{min-width:0;font-size:14px;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tournament-group-phase-court-ranking-points{text-align:right;font-size:13px;font-weight:700;color:var(--text-primary)}.tournament-group-phase-pairs{display:flex;flex-direction:column;gap:8px}.tournament-group-phase-pair-row{padding:10px 12px;border-radius:12px;background:#ffffff0a;border:1px solid rgba(255,255,255,.05);font-size:13px;line-height:1.4;color:var(--text-primary)}@media(max-width:980px){.tournament-detail-tabs-bar{flex-direction:column;align-items:stretch}.tournament-detail-tabs-actions{justify-content:stretch;flex-wrap:wrap}.tournament-detail-tabs-actions .primary-button,.tournament-detail-tabs-actions .secondary-button{flex:1}.tournament-group-phase-card-layout{grid-template-columns:1fr}.tournament-group-phase-card-side{padding-left:0;border-left:0;padding-top:6px;border-top:1px solid rgba(255,255,255,.08)}}@media(max-width:720px){.tournament-group-phase-match{grid-template-columns:1fr;gap:8px}.tournament-group-phase-team--right{text-align:left}.tournament-group-phase-separator{display:none}}.tournament-group-phase-savebar{display:flex;justify-content:flex-end;gap:10px;margin-top:16px}@media(max-width:720px){.tournament-group-phase-savebar{flex-direction:column}.tournament-group-phase-savebar button{width:100%}}.tournament-bracket-tree{--bracket-match-height: 70px;--bracket-base-gap: 12px;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(240px,1fr);gap:28px;align-items:start;overflow-x:auto;padding-bottom:6px}.tournament-bracket-round{display:flex;flex-direction:column;gap:10px;min-width:0;position:relative}.tournament-bracket-round__title{margin:0;font-size:14px;font-weight:700;color:var(--text-primary)}.tournament-bracket-round__matches{display:flex;flex-direction:column;gap:var(--round-gap, var(--bracket-base-gap));padding-top:var(--round-top-offset, 0px);position:relative}.tournament-bracket-match-wrap{position:relative}.tournament-bracket-match{position:relative;z-index:2;display:flex;flex-direction:column;gap:6px;min-height:var(--bracket-match-height);padding:10px;border-radius:12px;background:#ffffff0a;border:1px solid rgba(255,255,255,.07)}button.tournament-bracket-match{width:100%;text-align:left;font:inherit;color:inherit;cursor:default}button.tournament-bracket-match.tournament-bracket-match--clickable{cursor:pointer}button.tournament-bracket-match.tournament-bracket-match--clickable:hover{border-color:#ffffff29;background:#ffffff0f}button.tournament-bracket-match:disabled{opacity:.9}.tournament-bracket-connector{position:absolute;pointer-events:none;z-index:1}.tournament-bracket-connector--out{top:50%;left:calc(100% + 1px);width:10px;border-top:2px solid rgba(255,255,255,.22)}.tournament-bracket-connector--join-vertical{left:calc(100% + 11px);top:50%;height:var(--pair-center-distance, 0px);border-left:2px solid rgba(255,255,255,.22)}.tournament-bracket-connector--join-mid{left:calc(100% + 11px);top:calc(50% + (var(--pair-center-distance, 0px) / 2));width:10px;border-top:2px solid rgba(255,255,255,.22)}.tournament-bracket-team{display:grid;grid-template-columns:minmax(0,1fr) 28px;gap:8px;align-items:center}.tournament-bracket-team__name{font-size:13px;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tournament-bracket-team__score{text-align:right;font-size:13px;color:var(--text-secondary);font-weight:700}.tournament-bracket-team--winner{padding:4px 6px;margin:-2px -4px;border-radius:8px;background:#1b5e208c;border:1px solid rgba(129,199,132,.35)}.tournament-bracket-team--winner .tournament-bracket-team__name,.tournament-bracket-team--winner .tournament-bracket-team__score{color:#e8f5e9}.tournament-bracket-team--loser{padding:4px 6px;margin:-2px -4px;border-radius:8px;background:#b71c1c73;border:1px solid rgba(239,154,154,.35)}.tournament-bracket-team--loser .tournament-bracket-team__name,.tournament-bracket-team--loser .tournament-bracket-team__score{color:#ffebee}.tournament-bracket-team--bye-line{padding:4px 6px;margin:-2px -4px;border-radius:8px;background:#ffffff0a;border:1px solid rgba(255,255,255,.08)}.tournament-bracket-team--bye-line .tournament-bracket-team__name,.tournament-bracket-team--bye-line .tournament-bracket-team__score{color:var(--text-secondary);font-weight:600}.bracket-score-modal{max-width:520px}.bracket-score-modal__teams{display:grid;grid-template-columns:1fr auto 1fr;gap:16px;align-items:start;margin-bottom:8px}.bracket-score-modal__vs{align-self:center;padding-top:36px;font-weight:700;color:var(--text-secondary)}.bracket-score-modal__label{margin:0 0 6px;font-size:12px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em}.bracket-score-modal__names{margin:0 0 12px;font-size:15px;font-weight:600;line-height:1.35;color:var(--text-primary)}.bracket-score-modal__score-input{font-size:28px;font-weight:700;text-align:center;height:56px}@media(max-width:560px){.bracket-score-modal__teams{grid-template-columns:1fr}.bracket-score-modal__vs{padding-top:0;text-align:center}}.tournament-bracket-placement-block{margin-top:28px;padding-top:22px;border-top:1px solid rgba(255,255,255,.1)}.tournament-bracket-placement-row{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-start}.tournament-bracket-placement-match__badge{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-secondary);margin-bottom:8px}@media(max-width:900px){.tournament-bracket-tree{grid-auto-columns:minmax(220px,1fr)}}.tournament-detail-tabs{display:inline-flex;align-items:center;gap:8px;margin-bottom:18px;padding:6px;border-radius:16px;background:#ffffff0a;border:1px solid rgba(255,255,255,.06)}.tournament-detail-tab{height:40px;padding:0 16px;border:0;border-radius:12px;background:transparent;color:var(--text-secondary);font-size:14px;font-weight:700;cursor:pointer;transition:background .15s ease,color .15s ease,transform .15s ease}.tournament-detail-tab:hover{color:var(--text-primary);background:#ffffff0d}.tournament-detail-tab--active{background:#ffffff1a;color:var(--text-primary)}.tournament-detail-panels{display:block}.tournament-detail-panel--hidden{display:none}.tournament-detail-panel--active{display:block}@media(max-width:720px){.tournament-detail-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%}.tournament-detail-tab{width:100%;justify-content:center}}
