/* Tournament Manager — Front-end styles */
@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700&family=Sora:wght@600;700;800&display=swap');

.tm-wrap{
    --tm-ink:#0d1b2a;
    --tm-ink-2:#132a3e;
    --tm-accent:#ff5b04;
    --tm-accent-d:#e14e00;
    --tm-green:#12b76a;
    --tm-bg:#f4f6f9;
    --tm-card:#ffffff;
    --tm-border:#e6e9ef;
    --tm-text:#141a24;
    --tm-muted:#6b7484;
    font-family:'Manrope',system-ui,-apple-system,sans-serif;
    color:var(--tm-text);
    max-width:1160px;
    margin:0 auto;
    padding:8px 4px 40px;
    line-height:1.55;
}
.tm-wrap *{box-sizing:border-box;}
.tm-wrap h2,.tm-wrap h3,.tm-wrap h4{font-family:'Sora',sans-serif;line-height:1.2;margin:0 0 .4em;}
.tm-muted{color:var(--tm-muted);font-size:.9em;margin:.15em 0;}
.tm-empty{padding:40px;text-align:center;color:var(--tm-muted);background:var(--tm-card);border:1px dashed var(--tm-border);border-radius:16px;}
.tm-link{color:var(--tm-accent);font-weight:700;font-size:.9rem;}

/* Badges */
.tm-badge{display:inline-block;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:3px 10px;border-radius:999px;background:#eef1f6;color:#475569;}
.tm-badge-upcoming,.tm-badge-scheduled{background:#e0edff;color:#1d5fd8;}
.tm-badge-ongoing,.tm-badge-live{background:#ffe6d6;color:#d1490b;animation:tm-pulse 1.6s infinite;}
.tm-badge-completed{background:#dcfce7;color:#0f8a48;}
.tm-badge-pending{background:#fef3c7;color:#a16207;}
.tm-badge-approved{background:#dcfce7;color:#0f8a48;}
.tm-badge-rejected{background:#fee2e2;color:#c0332b;}
@keyframes tm-pulse{0%,100%{opacity:1}50%{opacity:.55}}

/* Logos */
.tm-logo,.tm-card-logo,.tm-hero-logo,.tm-team-logo,.tm-player-photo{object-fit:cover;background:#f1f3f7;display:inline-flex;align-items:center;justify-content:center;font-family:'Sora';font-weight:700;color:var(--tm-ink);}
.tm-logo{width:44px;height:44px;border-radius:12px;}
.tm-logo-sm{width:30px;height:30px;border-radius:8px;font-size:.85rem;}
.tm-logo-fallback{background:linear-gradient(135deg,#e9edf4,#dfe4ee);}

/* Grid of tournament cards */
.tm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:24px;}
.tm-card{background:var(--tm-card);border:1px solid var(--tm-border);border-radius:18px;overflow:hidden;text-decoration:none;color:inherit;display:block;transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease;}
.tm-tournament-card:hover{transform:translateY(-6px);box-shadow:0 18px 40px -18px rgba(13,27,42,.35);border-color:#d4d9e3;}
.tm-card-media{position:relative;height:150px;background:linear-gradient(135deg,var(--tm-ink),var(--tm-ink-2));display:flex;align-items:center;justify-content:center;}
.tm-card-logo{width:76px;height:76px;border-radius:18px;font-size:2rem;background:rgba(255,255,255,.12);color:#fff;border:1px solid rgba(255,255,255,.18);}
.tm-sport-tag{position:absolute;top:12px;right:12px;background:rgba(255,255,255,.15);backdrop-filter:blur(6px);color:#fff;font-size:.72rem;font-weight:700;padding:5px 12px;border-radius:999px;}
.tm-card-body{padding:18px 20px 22px;}
.tm-card-body h3{font-size:1.2rem;margin:.35em 0 .1em;}
.tm-meta{list-style:none;padding:0;margin:12px 0;font-size:.86rem;color:var(--tm-muted);}
.tm-meta li{margin:4px 0;}

/* Detail hero */
.tm-hero{border-radius:22px;padding:34px;background:linear-gradient(120deg,var(--tm-ink),var(--tm-ink-2));color:#fff;position:relative;overflow:hidden;}
.tm-hero:before{content:"";position:absolute;right:-80px;top:-80px;width:260px;height:260px;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--tm-accent) 55%,transparent),transparent 65%);}
.tm-hero-inner{display:flex;align-items:center;gap:24px;position:relative;z-index:1;}
.tm-hero-logo{width:92px;height:92px;border-radius:22px;font-size:2.4rem;background:rgba(255,255,255,.12);color:#fff;border:1px solid rgba(255,255,255,.2);}
.tm-hero h2{font-size:2rem;margin:.2em 0;color:#fff;}
.tm-hero-meta{opacity:.85;margin:0;font-size:.95rem;}
.tm-desc{margin:22px 4px;color:var(--tm-muted);}

/* Tabs */
.tm-tabs{margin-top:26px;}
.tm-tab-nav{display:flex;gap:6px;border-bottom:2px solid var(--tm-border);margin-bottom:24px;flex-wrap:wrap;}
.tm-tab-btn{border:0;background:none;font-family:'Sora';font-weight:700;font-size:.95rem;color:var(--tm-muted);padding:12px 18px;cursor:pointer;position:relative;transition:color .2s;}
.tm-tab-btn:after{content:"";position:absolute;left:12px;right:12px;bottom:-2px;height:3px;border-radius:3px;background:var(--tm-accent);transform:scaleX(0);transition:transform .25s;}
.tm-tab-btn.is-active{color:var(--tm-ink);}
.tm-tab-btn.is-active:after{transform:scaleX(1);}
.tm-tab-panel{display:none;animation:tm-fade .35s ease;}
.tm-tab-panel.is-active{display:block;}
@keyframes tm-fade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

/* Match cards */
.tm-matches{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:20px;}
.tm-match-card{background:var(--tm-card);border:1px solid var(--tm-border);border-radius:16px;padding:16px 18px;transition:box-shadow .25s,transform .25s;}
.tm-match-card:hover{box-shadow:0 14px 30px -20px rgba(13,27,42,.4);transform:translateY(-3px);}
.tm-match-completed{border-left:4px solid var(--tm-green);}
.tm-match-live{border-left:4px solid var(--tm-accent);}
.tm-match-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;}
.tm-match-round{font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--tm-muted);}
.tm-match-body{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:10px;}
.tm-team-side{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;}
.tm-team-side .tm-logo{border-bottom:3px solid var(--tc,transparent);}
.tm-team-name{font-weight:700;font-size:.92rem;}
.tm-score{text-align:center;min-width:70px;}
.tm-score-num{font-family:'Sora';font-weight:800;font-size:1.35rem;color:var(--tm-ink);}
.tm-score-cricket{font-size:1rem;display:flex;flex-direction:column;align-items:center;gap:2px;}
.tm-score-cricket em{font-style:normal;font-size:.65rem;color:var(--tm-muted);}
.tm-vs{font-family:'Sora';font-weight:700;color:var(--tm-muted);font-size:.9rem;}
.tm-match-foot{display:flex;gap:16px;flex-wrap:wrap;margin-top:14px;padding-top:12px;border-top:1px dashed var(--tm-border);font-size:.8rem;color:var(--tm-muted);}
.tm-result{margin-top:12px;background:#f0fbf5;color:#0f8a48;font-weight:700;font-size:.85rem;padding:8px 12px;border-radius:10px;}
.tm-mom{margin-top:8px;font-size:.82rem;color:var(--tm-muted);}

/* Standings */
.tm-table-scroll{overflow-x:auto;border:1px solid var(--tm-border);border-radius:16px;background:var(--tm-card);}
.tm-standings{width:100%;border-collapse:collapse;min-width:560px;}
.tm-standings th,.tm-standings td{padding:14px 10px;text-align:center;font-size:.9rem;}
.tm-standings thead th{background:var(--tm-ink);color:#fff;font-family:'Sora';font-weight:600;font-size:.78rem;text-transform:uppercase;letter-spacing:.03em;}
.tm-standings tbody tr{border-top:1px solid var(--tm-border);}
.tm-standings tbody tr:nth-child(even){background:#fafbfc;}
.tm-standings .tm-team-col{text-align:left;display:flex;align-items:center;gap:10px;font-weight:700;}
.tm-color-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;display:inline-block;box-shadow:0 0 0 2px rgba(0,0,0,.06);}
.tm-standings .tm-pos{font-weight:800;color:var(--tm-muted);width:40px;}
.tm-standings .tm-pts{font-weight:800;color:var(--tm-accent);font-size:1rem;}
.tm-standings tbody tr:nth-child(1) .tm-pos,.tm-standings tbody tr:nth-child(2) .tm-pos,.tm-standings tbody tr:nth-child(3) .tm-pos{color:var(--tm-green);}

/* Teams & players */
.tm-teams-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:22px;}
.tm-team-card{padding:20px;}
.tm-team-head{display:flex;align-items:center;gap:14px;margin-bottom:16px;}
.tm-team-logo{width:60px;height:60px;border-radius:14px;font-size:1.5rem;}
.tm-team-head h3{font-size:1.15rem;margin:0;}
.tm-player-list{list-style:none;padding:0;margin:0;}
.tm-player{display:flex;align-items:center;gap:12px;padding:10px 0;border-top:1px solid var(--tm-border);}
.tm-player-photo{width:40px;height:40px;border-radius:50%;font-size:.95rem;}
.tm-player-info{display:flex;flex-direction:column;}
.tm-player-info em{font-style:normal;font-size:.78rem;color:var(--tm-muted);}
.tm-no-players{padding:8px 0;}

/* Registration form */
.tm-registration{max-width:720px;}
.tm-form{background:var(--tm-card);border:1px solid var(--tm-border);border-radius:20px;padding:30px;}
.tm-form-title{font-size:1.4rem;margin-bottom:20px;}
.tm-field{margin-bottom:16px;display:flex;flex-direction:column;}
.tm-field label{font-weight:700;font-size:.85rem;margin-bottom:6px;}
.tm-field input,.tm-field select,.tm-field textarea{width:100%;padding:11px 14px;border:1px solid var(--tm-border);border-radius:11px;font:inherit;background:#fbfcfe;transition:border-color .2s,box-shadow .2s;}
.tm-field input:focus,.tm-field select:focus,.tm-field textarea:focus{outline:none;border-color:var(--tm-accent);box-shadow:0 0 0 3px rgba(255,91,4,.12);}
.tm-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.tm-hp{position:absolute;left:-9999px;height:0;width:0;overflow:hidden;}
.tm-submit-btn{background:var(--tm-accent);color:#fff;border:0;font-family:'Sora';font-weight:700;font-size:1rem;padding:14px 30px;border-radius:12px;cursor:pointer;transition:background .2s,transform .15s;}
.tm-submit-btn:hover{background:var(--tm-accent-d);transform:translateY(-2px);}
.tm-alert{padding:14px 18px;border-radius:12px;margin-bottom:20px;font-weight:600;}
.tm-alert-success{background:#dcfce7;color:#0f8a48;}
.tm-alert-error{background:#fee2e2;color:#c0332b;}

/* Tournament card accent stripe */
.tm-tournament-card{position:relative;}
.tm-tournament-card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:var(--tm-accent);z-index:2;}
.tm-card-media{border-top:0;}

/* Live score ticker */
.tm-ticker-wrap{padding:0;margin:0 auto 20px;}
.tm-ticker{background:var(--tm-ink);color:#fff;border-radius:12px;overflow:hidden;display:flex;align-items:stretch;}
.tm-ticker-label{background:var(--tm-accent);padding:12px 18px;font-family:'Sora';font-weight:800;text-transform:uppercase;font-size:.75rem;letter-spacing:.08em;white-space:nowrap;display:flex;align-items:center;flex-shrink:0;}
.tm-ticker-track-wrap{overflow:hidden;flex:1;position:relative;}
.tm-ticker-track{display:inline-flex;white-space:nowrap;animation:tm-marquee 40s linear infinite;will-change:transform;}
.tm-ticker:hover .tm-ticker-track{animation-play-state:paused;}
.tm-ticker-item{padding:12px 24px;font-size:.85rem;display:inline-flex;align-items:center;gap:6px;border-right:1px solid rgba(255,255,255,.12);}
.tm-ticker-item em{font-style:normal;opacity:.55;font-size:.72rem;margin:0 2px;}
.tm-ticker-item strong{font-weight:700;}
.tm-ticker-live{color:var(--tm-accent);font-weight:800;font-size:.72rem;letter-spacing:.03em;animation:tm-pulse 1.4s infinite;}
@keyframes tm-marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* Links & back */
.tm-team-link{color:inherit;text-decoration:none;border-bottom:2px solid transparent;transition:border-color .15s,color .15s;}
.tm-team-link:hover{color:var(--tm-accent);border-color:var(--tm-accent);}
.tm-back{display:inline-block;margin:0 0 16px;font-weight:700;color:var(--tm-muted);font-size:.9rem;}
.tm-back:hover{color:var(--tm-accent);}
.tm-block-title{font-family:'Sora';font-size:1.3rem;margin:34px 0 16px;}

/* Match card as link */
.tm-match-card{position:relative;}
.tm-match-cardlink{position:absolute;inset:0;z-index:3;border-radius:16px;}
.tm-match-card:hover{cursor:pointer;}

/* Big live cards */
.tm-matches-big{grid-template-columns:repeat(auto-fill,minmax(360px,1fr));}
.tm-matches-big .tm-match-card{padding:22px 24px;}
.tm-matches-big .tm-score-num{font-size:1.7rem;}
.tm-matches-big .tm-team-name{font-size:1rem;}

/* Team page */
.tm-team-hero .tm-hero-inner{align-items:center;}
.tm-team-record{display:flex;gap:24px;margin-top:14px;}
.tm-team-record span{font-size:.85rem;color:rgba(255,255,255,.7);}
.tm-team-record strong{font-family:'Sora';font-size:1.4rem;color:#fff;display:block;}
.tm-squad{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:16px;}
.tm-squad-card{display:flex;align-items:center;gap:12px;background:var(--tm-card);border:1px solid var(--tm-border);border-radius:14px;padding:14px;border-left:4px solid var(--tm-accent);}
.tm-squad-photo{width:48px;height:48px;border-radius:50%;font-size:1.1rem;flex-shrink:0;}
.tm-squad-info{display:flex;flex-direction:column;}
.tm-squad-info em{font-style:normal;font-size:.78rem;color:var(--tm-muted);}
.tm-squad-stats{font-family:'Sora';font-weight:700;font-size:.82rem;color:var(--tm-accent);margin-top:3px;}

/* Match centre / scoreboard */
.tm-scoreboard{background:linear-gradient(135deg,var(--tm-ink),var(--tm-ink-2));color:#fff;border-radius:20px;padding:26px 28px;position:relative;overflow:hidden;}
.tm-scoreboard:after{content:"";position:absolute;right:-90px;top:-90px;width:280px;height:280px;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--tm-accent) 45%,transparent),transparent 65%);}
.tm-sb-top{display:flex;justify-content:space-between;align-items:center;position:relative;z-index:1;margin-bottom:20px;}
.tm-sb-top .tm-match-round{color:rgba(255,255,255,.7);}
.tm-sb-body{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:14px;position:relative;z-index:1;}
.tm-sb-team{display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center;}
.tm-sb-logo{width:76px;height:76px;border-radius:18px;font-size:2rem;border-bottom:4px solid var(--tc,transparent);background:rgba(255,255,255,.1);color:#fff;}
.tm-sb-name{color:#fff;font-family:'Sora';font-weight:700;font-size:1.1rem;border:0;}
.tm-sb-name:hover{color:var(--tm-accent);}
.tm-sb-team.is-winner .tm-sb-name:after{content:" 🏆";}
.tm-sb-score{text-align:center;min-width:120px;}
.tm-sb-num{font-family:'Sora';font-weight:800;font-size:2.4rem;display:block;}
.tm-sb-cricket{font-size:1.4rem;display:flex;flex-direction:column;gap:2px;}
.tm-sb-cricket em{font-style:normal;font-size:.7rem;color:rgba(255,255,255,.6);}
.tm-sb-overs{display:block;font-size:.75rem;color:rgba(255,255,255,.6);margin-top:6px;font-family:'Manrope';}
.tm-sb-result{margin-top:20px;position:relative;z-index:1;background:rgba(255,255,255,.12);border-radius:12px;padding:12px 16px;font-weight:700;text-align:center;}
.tm-match-details{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;margin-top:22px;}
.tm-md-item{background:var(--tm-card);border:1px solid var(--tm-border);border-radius:12px;padding:14px 16px;}
.tm-md-k{display:block;font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--tm-muted);margin-bottom:4px;}
.tm-md-v{font-weight:700;}

/* Champions strip */
.tm-champions{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:18px;}
.tm-champion{display:flex;align-items:center;gap:16px;background:linear-gradient(135deg,var(--tm-ink),var(--tm-ink-2));color:#fff;border-radius:16px;padding:18px 22px;border-left:5px solid var(--tc,#ff5b04);text-decoration:none;transition:transform .2s,box-shadow .2s;}
.tm-champion:hover{transform:translateY(-4px);box-shadow:0 18px 40px -22px rgba(0,0,0,.6);color:#fff;}
.tm-champion-trophy{font-size:2.2rem;filter:drop-shadow(0 2px 6px rgba(0,0,0,.4));}
.tm-champion-label{display:block;font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:rgba(255,255,255,.65);}
.tm-champion-team{display:flex;align-items:center;gap:8px;font-family:'Sora';font-weight:800;font-size:1.2rem;margin-top:4px;}
@media(max-width:640px){.tm-team-record{gap:16px;}.tm-sb-num{font-size:1.8rem;}}


/* Knockout bracket */
.tm-bracket-scroll{overflow-x:auto;padding:6px 2px 14px;}
.tm-bracket{display:flex;gap:34px;min-width:min-content;align-items:stretch;}
.tm-bracket-col{display:flex;flex-direction:column;justify-content:space-around;gap:18px;min-width:230px;}
.tm-bracket-title{font-size:.82rem;text-transform:uppercase;letter-spacing:.06em;color:var(--tm-muted);text-align:center;margin:0 0 4px;}
.tm-bracket-match{background:var(--tm-card);border:1px solid var(--tm-border);border-radius:12px;overflow:hidden;box-shadow:0 6px 18px -14px rgba(13,27,42,.4);}
.tm-bracket-match.tm-match-live{border-left:3px solid var(--tm-accent);}
.tm-bracket-team{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;font-size:.9rem;}
.tm-bracket-team+.tm-bracket-team{border-top:1px solid var(--tm-border);}
.tm-bt-name{display:flex;align-items:center;gap:8px;font-weight:600;}
.tm-bt-score{font-family:'Sora';font-weight:700;color:var(--tm-muted);white-space:nowrap;}
.tm-bracket-team.is-winner{background:color-mix(in srgb,var(--tm-accent) 10%,#fff);}
.tm-bracket-team.is-winner .tm-bt-name,.tm-bracket-team.is-winner .tm-bt-score{color:var(--tm-accent-d);}
.tm-bracket-note{text-align:center;font-size:.72rem;color:var(--tm-muted);padding:4px;background:#fafbfc;border-top:1px dashed var(--tm-border);}

/* Top performers / scorers */
.tm-scorers{display:grid;grid-template-columns:1fr 1fr;gap:22px;}
.tm-scorer-board{background:var(--tm-card);border:1px solid var(--tm-border);border-radius:16px;padding:18px 20px;}
.tm-scorer-board h4{font-size:1.05rem;margin:0 0 12px;padding-bottom:10px;border-bottom:2px solid var(--tm-border);}
.tm-scorer-list{list-style:none;margin:0;padding:0;counter-reset:none;}
.tm-scorer-list li{display:flex;align-items:center;gap:12px;padding:9px 0;border-top:1px solid var(--tm-border);}
.tm-scorer-list li:first-child{border-top:0;}
.tm-scorer-pos{font-family:'Sora';font-weight:800;width:22px;text-align:center;color:var(--tm-muted);}
.tm-scorer-list li:nth-child(1) .tm-scorer-pos{color:var(--tm-accent);}
.tm-scorer-photo{width:38px;height:38px;border-radius:50%;font-size:.9rem;}
.tm-scorer-info{display:flex;flex-direction:column;flex:1;}
.tm-scorer-info em{font-style:normal;font-size:.76rem;color:var(--tm-muted);}
.tm-scorer-stat{font-family:'Sora';font-weight:800;font-size:1.15rem;color:var(--tm-ink);white-space:nowrap;}
.tm-scorer-stat small{font-size:.62rem;font-weight:600;color:var(--tm-muted);text-transform:uppercase;}

@media(max-width:640px){
    .tm-scorers{grid-template-columns:1fr;}
    .tm-hero{padding:24px;}
    .tm-hero-inner{flex-direction:column;text-align:center;}
    .tm-hero h2{font-size:1.5rem;}
    .tm-row{grid-template-columns:1fr;}
    .tm-form{padding:22px;}
}
