@font-face{font-family:K2D;font-style:normal;font-weight:400;font-display:swap;src:url('./fonts/K2D-Regular.ttf') format('truetype')}
@font-face{font-family:K2D;font-style:normal;font-weight:600;font-display:swap;src:url('./fonts/K2D-SemiBold.ttf') format('truetype')}
@font-face{font-family:K2D;font-style:normal;font-weight:700;font-display:swap;src:url('./fonts/K2D-Bold.ttf') format('truetype')}
body,button,input,textarea,select,h1,h2,h3,h4,.brand,.hero h1,.page-title,.season-title,.metric b,.stats-row b,.score,.kpi strong,.rule-number,.rule-section h2,.rules-index>a span{font-family:K2D,sans-serif}
.section h2,.rules-meta b,.group-stage-summary b,.group-table-header h2{font-family:K2D,sans-serif}
[hidden]{display:none!important}button:disabled,.btn:disabled{opacity:.55;cursor:not-allowed;transform:none}.skip-link{position:fixed;top:-100px;left:16px;padding:12px;background:var(--lime);color:#061006;z-index:100}.skip-link:focus{top:8px}:focus-visible{outline:2px solid var(--lime);outline-offset:4px}#main-content:focus{outline:none}
.form-feedback{margin-top:16px}.form-feedback:empty{display:none}.form-feedback[data-error=true]{border-left-color:var(--red)}.field-error{color:var(--red);font-size:13px}.status-line{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.staff-toolbar{display:flex;gap:12px;flex-wrap:wrap;margin:16px 0}.staff-toolbar .field{min-width:180px}.stack{display:grid;gap:16px}.mt{margin-top:24px}.inline-form{display:flex;gap:8px;flex-wrap:wrap}.plain-list{padding-left:20px}.table input,.table select{max-width:100%}.file-preview{max-width:100%;max-height:440px;object-fit:contain}.brand-lockup{display:inline-flex;align-items:center;gap:10px}.brand-image{object-fit:contain}.notice a{text-decoration:underline}.admin-content{min-width:0}.nav{gap:16px}.hero h1,.page-title{line-height:1.2;letter-spacing:-.025em}input[type=file]{max-width:100%}
@media(max-width:1100px){.header-actions{display:none}.nav{gap:12px;font-size:13px}}
@media(max-width:800px){.staff-toolbar{flex-direction:column}.staff-toolbar .field{width:100%}.form-card{width:100%}.page-title{font-size:30px}.hero h1{font-size:42px}.side-nav{overflow-wrap:anywhere}.table-wrap{max-width:100%}.inline-form{flex-direction:column}.inline-form .btn{width:100%}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.btn:hover{transform:none}}

/* Applicant journey states: conclusion first, then the next safe action. */
.error-state{display:flex;gap:18px;align-items:flex-start;border-color:#5c2830;background:linear-gradient(135deg,rgba(255,107,118,.08),rgba(6,16,6,.94));}
.error-state h3{margin:7px 0 6px;color:#ffd9dc;font-size:21px}
.error-state p{margin:0 0 12px;max-width:620px}
.error-sport-icon{display:grid;place-items:center;flex:0 0 48px;width:48px;height:48px;border:1px solid rgba(255,107,118,.35);border-radius:50%;font-size:25px;background:rgba(255,107,118,.1)}
.empty-state h3{margin-bottom:6px}
.detail-list{display:grid;gap:1px;margin-top:10px;border:1px solid var(--line);border-radius:4px;overflow:hidden}
.detail-item{display:flex;justify-content:space-between;gap:16px;align-items:baseline;padding:10px 12px;background:rgba(255,255,255,.025);border-bottom:1px solid rgba(255,255,255,.06)}
.detail-item:last-child{border-bottom:0}
.detail-item span{color:var(--muted);font-size:12px}
.detail-item b{font-size:13px;text-align:right;overflow-wrap:anywhere}
.next-step{display:flex;gap:12px;align-items:flex-start;margin-top:18px;background:rgba(0,240,90,.06);border-left-color:var(--lime)}
.next-step-icon{display:grid;place-items:center;flex:0 0 28px;width:28px;height:28px;border-radius:50%;background:var(--lime);color:#061006;font-weight:700}
.next-step b{display:block;color:var(--lime);font-size:15px}
.next-step p{margin-top:3px!important}
.status-history .history-item{display:flex;gap:12px;position:relative;padding:12px 0 12px 2px}
.status-history .history-item:not(:last-child)::before{content:'';position:absolute;left:6px;top:25px;bottom:-8px;border-left:1px solid var(--line)}
.history-dot{z-index:1;display:block;flex:0 0 10px;width:10px;height:10px;margin-top:5px;border:2px solid var(--muted);border-radius:50%;background:var(--bg)}
.history-item.current .history-dot{border-color:var(--lime);background:var(--lime);box-shadow:0 0 0 3px rgba(0,240,90,.12)}
.history-item strong,.history-item small,.history-item p{display:block}
.history-item small{margin-top:2px;font-size:11px}
.history-item p{margin-top:4px;font-size:13px}
.score-panel{display:flex;flex-direction:column;align-items:center;gap:2px;margin-top:16px;padding:14px;border:1px solid var(--line);background:#081509;text-align:center}
.score-panel strong{font-family:K2D,sans-serif;color:var(--lime);font-size:30px;line-height:1.1}
.score-panel small{color:var(--muted);font-size:11px}
.match-meta{margin-top:12px}
.action-notice{border-left-color:var(--lime)}
@media(max-width:800px){.error-state{gap:12px}.error-sport-icon{flex-basis:40px;width:40px;height:40px;font-size:21px}.applicant-detail-grid{grid-template-columns:1fr}.detail-item{align-items:flex-start;flex-direction:column;gap:2px}.detail-item b{text-align:left}.score-panel strong{font-size:27px}}
.player-contact { display:grid; gap:5px; margin-top:12px; border-left-color:var(--lime); }
.player-contact a { color:inherit; text-decoration:underline; }

/* Micro interactions: quick state cues that keep the interface responsive without adding noise. */
#main-content.spa-enter > *{animation:gt-page-enter .22s cubic-bezier(.22,1,.36,1) both}
@keyframes gt-page-enter{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}
.mobile-nav-menu.is-open{animation:gt-menu-enter .16s ease-out both;transform-origin:top right}
@keyframes gt-menu-enter{from{opacity:0;transform:translateY(-5px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}
.btn:active:not(:disabled),button:active:not(:disabled){transform:translateY(1px) scale(.985)}
form[aria-busy="true"]{position:relative;opacity:.72;transition:opacity .18s ease}
form[aria-busy="true"]::after{content:'';position:absolute;top:17px;right:17px;width:14px;height:14px;border:2px solid rgba(255,255,255,.25);border-top-color:var(--lime);border-radius:50%;animation:gt-spin .7s linear infinite}
@keyframes gt-spin{to{transform:rotate(360deg)}}
[data-feedback].is-visible,[data-competition-feedback].is-visible,[data-logout-feedback].is-visible{animation:gt-feedback-in .18s ease-out both}
@keyframes gt-feedback-in{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){#main-content.spa-enter > *,form[aria-busy="true"]::after,[data-feedback].is-visible,[data-competition-feedback].is-visible,[data-logout-feedback].is-visible{animation:none!important}.btn:active:not(:disabled),button:active:not(:disabled){transform:none}}

/* Outcome states: make the result clear before the user reads the detail. */
form:has(> .callout[role="status"]) > .callout[role="status"]{position:relative;overflow:hidden;padding-left:64px;animation:gt-success-in .28s cubic-bezier(.22,1,.36,1) both}
form:has(> .callout[role="status"]) > .callout[role="status"]::before{content:'✓';position:absolute;left:20px;top:20px;display:grid;place-items:center;width:30px;height:30px;border:1px solid var(--lime);border-radius:50%;color:#061006;background:var(--lime);font-weight:700;animation:gt-check-pop .35s .08s cubic-bezier(.22,1,.36,1) both}
@keyframes gt-success-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@keyframes gt-check-pop{from{opacity:0;transform:scale(.5) rotate(-12deg)}to{opacity:1;transform:scale(1) rotate(0)}}
.match-outcome{display:inline-flex;align-items:center;gap:5px;margin-left:8px;padding:5px 9px;border:1px solid currentColor;border-radius:3px;font-size:11px;font-weight:700;animation:gt-outcome-in .24s ease-out both}
.match-outcome span{font-size:14px;line-height:1}
.match-outcome-advanced .match-outcome,.match-outcome-champion .match-outcome{color:var(--lime);background:rgba(0,240,90,.09)}
.match-outcome-eliminated .match-outcome{color:#ff9ca3;background:rgba(255,109,120,.08)}
.match-outcome-runner-up .match-outcome,.match-outcome-completed .match-outcome{color:var(--orange);background:rgba(255,180,92,.08)}
@keyframes gt-outcome-in{from{opacity:0;transform:translateX(5px)}to{opacity:1;transform:translateX(0)}}
.table tbody tr:nth-child(1) .rank,.group-table tbody tr:nth-child(1) .rank{animation:gt-podium-rise .28s .04s cubic-bezier(.22,1,.36,1) both}
.table tbody tr:nth-child(2) .rank,.group-table tbody tr:nth-child(2) .rank{animation:gt-podium-rise .28s .12s cubic-bezier(.22,1,.36,1) both}
.table tbody tr:nth-child(3) .rank,.group-table tbody tr:nth-child(3) .rank{animation:gt-podium-rise .28s .20s cubic-bezier(.22,1,.36,1) both}
@keyframes gt-podium-rise{from{opacity:0;transform:translateY(8px) scale(.85)}to{opacity:1;transform:translateY(0) scale(1)}}
@media(max-width:800px){.match-outcome{margin:8px 0 0}.match-detail .row-between{align-items:flex-start}.match-detail .row-between>.match-outcome{order:3;width:100%}}
@media(prefers-reduced-motion:reduce){form:has(> .callout[role="status"]) > .callout[role="status"],form:has(> .callout[role="status"]) > .callout[role="status"]::before,.match-outcome,.table tbody tr:nth-child(-n+3) .rank,.group-table tbody tr:nth-child(-n+3) .rank{animation:none!important}}

/* Non-blocking toast popup: important feedback stays visible without interrupting the task. */
.gt-toast-region{position:fixed;top:18px;right:18px;z-index:1200;display:grid;gap:10px;width:min(360px,calc(100vw - 28px));pointer-events:none}
.gt-toast{display:grid;grid-template-columns:30px 1fr 24px;align-items:center;gap:10px;min-height:58px;padding:12px 12px 12px 14px;border:1px solid var(--line);border-left:3px solid var(--lime);border-radius:4px;background:rgba(6,20,9,.96);box-shadow:0 14px 34px rgba(0,0,0,.32);color:var(--text);pointer-events:auto;animation:gt-toast-in .24s cubic-bezier(.22,1,.36,1) both}
.gt-toast[data-tone="completed"],.gt-toast[data-tone="runner-up"]{border-left-color:var(--orange)}
.gt-toast[data-tone="eliminated"]{border-left-color:#ff6d78}
.gt-toast[data-tone="champion"]{border-left-color:#f5cf62}
.gt-toast-icon{display:grid;place-items:center;width:28px;height:28px;border:1px solid var(--lime);border-radius:50%;color:var(--lime);font-size:16px;font-weight:700}
.gt-toast[data-tone="completed"] .gt-toast-icon,.gt-toast[data-tone="runner-up"] .gt-toast-icon{border-color:var(--orange);color:var(--orange)}
.gt-toast[data-tone="eliminated"] .gt-toast-icon{border-color:#ff6d78;color:#ff9ca3}
.gt-toast[data-tone="champion"] .gt-toast-icon{border-color:#f5cf62;color:#f5cf62}
.gt-toast-copy{font-size:13px;font-weight:700;line-height:1.35}
.gt-toast-close{display:grid;place-items:center;width:24px;height:24px;padding:0;border:0;background:transparent;color:var(--muted);font-size:20px;line-height:1;cursor:pointer}
.gt-toast-close:hover,.gt-toast-close:focus-visible{color:var(--text)}
.gt-toast[data-leaving]{animation:gt-toast-out .18s ease-in both}
@keyframes gt-toast-in{from{opacity:0;transform:translateY(-8px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes gt-toast-out{from{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-6px)}}
@media(max-width:800px){.gt-toast-region{top:12px;right:12px;left:12px;width:auto}.gt-toast{min-height:54px}}
@media(prefers-reduced-motion:reduce){.gt-toast,.gt-toast[data-leaving]{animation:none!important}}
