:root{--primary:#063f2c;--secondary:#0a6b3f;--accent:#e6b51e;--surface:#fff;--text:#10251d;--muted:#6d7c75;--line:#d8e2dd}*{box-sizing:border-box}body{margin:0;font-family:Inter,Arial,sans-serif;background:#eef4f1;color:var(--text)}a{text-decoration:none;color:inherit}.container{width:min(1460px,94%);margin:auto}.top{background:linear-gradient(135deg,#021c13,var(--primary));color:white}.brandbar{display:flex;align-items:center;gap:18px;padding:18px 0}.brandbar img.cup{width:105px;height:105px;object-fit:contain;border-radius:12px}.brandbar img.foundation{height:76px;max-width:280px;object-fit:contain;background:#fff;border-radius:10px;padding:7px}.brand-title{font-size:34px;font-weight:900}.tag{letter-spacing:5px;color:var(--accent);font-weight:800}.nav{display:flex;flex-wrap:wrap;gap:8px;padding:0 0 16px}.nav a{padding:11px 15px;border-radius:10px;font-weight:800}.nav a:hover,.nav a.active{background:var(--secondary)}.hero{display:grid;grid-template-columns:1.15fr .75fr;gap:18px;padding:22px 0}.hero-card,.card{background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:0 7px 26px #0b352515;overflow:hidden}.hero-main{min-height:330px;background:radial-gradient(circle at 70% 30%,#178452,transparent 36%),linear-gradient(135deg,#031d15,#0a5238);color:white;padding:35px;display:flex;align-items:center;justify-content:space-between}.hero-main h1{font-size:58px;margin:0 0 5px}.hero-main img{width:220px;height:220px;object-fit:contain}.kicker{font-size:13px;color:var(--accent);font-weight:900;letter-spacing:2px}.section{padding:18px 0}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:18px}.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.card h2,.card h3{margin:0}.card-head{padding:14px 18px;background:var(--primary);color:#fff;display:flex;justify-content:space-between;align-items:center}.card-body{padding:16px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:14px}th,td{padding:11px 9px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}th{font-size:12px;text-transform:uppercase;color:#50645b}.rank{font-weight:900}.team-chip{display:flex;align-items:center;gap:8px;font-weight:800}.team-chip img{width:30px;height:30px;object-fit:contain}.placeholder-logo{width:30px;height:30px;border-radius:50%;display:inline-grid;place-items:center;background:#e4ebe7;font-size:12px}.score{font-size:21px;font-weight:900}.match-row{display:grid;grid-template-columns:135px 1fr 90px 1fr 110px;gap:8px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}.match-row:last-child{border-bottom:0}.badge{display:inline-block;background:#e5f3ec;color:var(--primary);padding:5px 9px;border-radius:999px;font-size:11px;font-weight:900}.btn{display:inline-block;border:0;background:var(--secondary);color:#fff;padding:10px 15px;border-radius:9px;font-weight:800;cursor:pointer}.btn.alt{background:var(--accent);color:#1b251e}.sponsors{background:#fff;border-top:4px solid var(--accent);padding:18px 0 24px;margin-top:24px}.sponsors h2{text-align:center;color:var(--primary);letter-spacing:3px}.sponsor-grid{display:flex;gap:28px;align-items:center;justify-content:center;flex-wrap:wrap}.sponsor-grid img{height:70px;max-width:150px;object-fit:contain}.footer{background:#021c13;color:#dce7e1;padding:24px 0}.stats-list{margin:0;padding:0;list-style:none}.stats-list li{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--line)}.bracket{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;align-items:start}.round h3{text-align:center;color:var(--primary)}.bracket-match{background:#fff;border:1px solid var(--line);border-left:4px solid var(--accent);border-radius:10px;padding:10px;margin:12px 0}.bracket-team{display:flex;justify-content:space-between;padding:7px 0}.admin-wrap{display:grid;grid-template-columns:240px 1fr;min-height:100vh}.sidebar{background:#021c13;color:white;padding:25px 15px}.sidebar a{display:block;padding:12px;border-radius:9px;margin:4px 0}.sidebar a:hover{background:#0a6b3f}.admin-main{padding:28px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.form-grid label{font-weight:700;font-size:13px}.form-grid input,.form-grid select,.form-grid textarea{width:100%;padding:11px;border:1px solid #cbd9d2;border-radius:8px;margin-top:5px;background:#fff}.form-grid .full{grid-column:1/-1}.alert{padding:12px;border-radius:8px;margin:12px 0}.ok{background:#def5e6}.err{background:#ffe1e1}.install{max-width:720px;margin:70px auto;padding:30px}.color-dot{width:28px;height:28px;border-radius:50%;display:inline-block;border:1px solid #aaa}.admin-logo{height:50px;max-width:130px;object-fit:contain}.small{font-size:12px;color:var(--muted)}@media(max-width:900px){.hero,.grid-2,.grid-4,.bracket{grid-template-columns:1fr}.hero-main h1{font-size:38px}.hero-main img{width:130px;height:130px}.match-row{grid-template-columns:1fr}.admin-wrap{grid-template-columns:1fr}.sidebar{position:relative}.form-grid{grid-template-columns:1fr}.brandbar{align-items:flex-start;flex-wrap:wrap}.brand-title{font-size:26px}}
/* Match Centre additions */
.match-hero{display:grid;grid-template-columns:1fr auto 1fr;gap:24px;align-items:center;text-align:center}.match-hero .score{font-size:36px;font-weight:900}.match-hero .score small{display:block;font-size:12px;text-transform:uppercase;margin-top:6px}.event-line{padding:10px 0;border-bottom:1px solid rgba(0,0,0,.08)}.event-line small{display:block;margin-left:35px;opacity:.72}.mom{text-align:center;padding:18px}.match-row{text-decoration:none;color:inherit}.match-row:hover{background:rgba(0,0,0,.03)}@media(max-width:700px){.match-hero{grid-template-columns:1fr}.match-hero .score{order:-1}}

.lang-switch{display:inline-flex;gap:6px;align-items:center;margin-left:auto}.lang-switch a{font-weight:800}.lang-switch a.active{color:var(--accent);text-decoration:underline}.sponsor-grid .small{padding:18px 0;opacity:.75}

/* News & media */
.page-head{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:18px}.news-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.news-card>img{width:100%;height:220px;object-fit:cover}.article{max-width:980px;margin:auto}.article h1{font-size:42px}.article-image{width:100%;max-height:560px;object-fit:cover;border-radius:12px;margin:12px 0 20px}.lead{font-size:19px;font-weight:700}.article-content{font-size:17px;line-height:1.7}.media-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.media-card{margin:0}.media-card img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:10px}.media-card figcaption{padding:8px 0;font-size:13px}.news-mini-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.news-mini{display:flex;gap:12px;align-items:center;padding:10px;border:1px solid var(--line);border-radius:10px}.news-mini img{width:100px;height:75px;object-fit:cover;border-radius:8px}@media(max-width:900px){.news-grid,.media-grid,.news-mini-grid{grid-template-columns:1fr}.page-head{align-items:flex-start;flex-direction:column}.article h1{font-size:30px}}

/* Team profile v1.7 */
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.team-card-link{transition:.18s transform,.18s box-shadow}.team-card-link:hover{transform:translateY(-3px);box-shadow:0 12px 32px #0b352528}.team-profile-head .card-body{display:flex;gap:24px;align-items:center}.team-profile-head img,.team-big-logo{width:130px;height:130px;object-fit:contain}.team-profile-head h1{font-size:44px;margin:8px 0}.team-tabs{display:flex;gap:8px;overflow:auto;position:sticky;top:0;z-index:5;background:#eef4f1;padding:12px 0}.team-tabs a{white-space:nowrap;background:#fff;border:1px solid var(--line);border-radius:999px;padding:9px 13px;font-weight:800;font-size:12px}.stat-cards .card-body{display:flex;flex-direction:column;gap:6px}.stat-cards strong{font-size:32px;color:var(--primary)}.personnel-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.person-card{display:flex;gap:12px;align-items:center;border:1px solid var(--line);border-radius:12px;padding:12px}.person-card img,.person-placeholder{width:64px;height:64px;border-radius:50%;object-fit:cover}.person-placeholder{display:grid;place-items:center;background:#e8efeb;font-size:25px}.person-card div{display:flex;flex-direction:column;gap:3px}.person-card span{font-weight:800;color:var(--secondary)}.person-card small{color:var(--muted)}.team-check-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;border:1px solid var(--line);padding:12px;border-radius:10px;background:#fff}.team-check-grid label{font-weight:600}.team-check-grid input{width:auto;margin:0 6px 0 0}@media(max-width:900px){.grid-3,.personnel-grid,.team-check-grid{grid-template-columns:1fr}.team-profile-head .card-body{align-items:flex-start}.team-profile-head h1{font-size:32px}}
.auth-card{max-width:560px;margin:0 auto}.auth-card label{display:block;margin-top:12px;font-weight:700}.auth-card input,.auth-card select,.auth-card textarea{width:100%;box-sizing:border-box;margin:6px 0 12px}.video-wrap{position:relative;padding-top:56.25%;overflow:hidden}.video-wrap iframe{position:absolute;inset:0;width:100%;height:100%;border:0}.live-feed .event-line{padding:12px 0;border-bottom:1px solid #e7eee9}.live-feed .event-line small{display:block;opacity:.65;margin-top:4px}.match-actions{text-align:center}

.auth-choice{display:flex;gap:18px;flex-wrap:wrap;margin:8px 0 14px}.auth-choice label{display:flex;align-items:center;gap:8px;font-weight:800}.auth-choice input[type=radio]{width:auto;margin:0}.card-body .grid-4>div b{display:block;margin-top:4px}.card-body .grid-4>div .small{display:block}


/* v2.6 — Mobile header branding alignment
   Mobile only: Tournament logo | Kafiti Cup title/tagline | Foundation logo */
@media (max-width:900px){
  .brandbar{
    display:grid;
    grid-template-columns:76px minmax(0,1fr) 64px;
    align-items:center;
    gap:10px;
    padding:14px 0;
    flex-wrap:nowrap;
  }
  .brandbar img.cup{
    width:76px;
    height:76px;
    border-radius:10px;
    justify-self:start;
  }
  .brandbar > div{
    min-width:0;
    align-self:center;
  }
  .brand-title{
    font-size:21px;
    line-height:1.08;
    white-space:nowrap;
    letter-spacing:-.3px;
  }
  .tag{
    margin-top:7px;
    font-size:12px;
    line-height:1.15;
    letter-spacing:3px;
    white-space:nowrap;
  }
  .brandbar img.foundation{
    width:64px;
    height:64px;
    max-width:64px;
    padding:4px;
    border-radius:9px;
    justify-self:end;
  }
}
@media (max-width:390px){
  .brandbar{
    grid-template-columns:68px minmax(0,1fr) 56px;
    gap:8px;
  }
  .brandbar img.cup{
    width:68px;
    height:68px;
  }
  .brand-title{
    font-size:18px;
  }
  .tag{
    font-size:10px;
    letter-spacing:2.3px;
  }
  .brandbar img.foundation{
    width:56px;
    height:56px;
    max-width:56px;
  }
}

/* v2.8 News multi-image gallery */
.article-gallery{margin-top:26px}
.article-gallery h2{margin:0 0 14px;color:var(--primary)}
.article-gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.article-gallery-grid a{display:block;border-radius:12px;overflow:hidden;background:#e8efeb}
.article-gallery-grid img{display:block;width:100%;height:240px;object-fit:cover;transition:transform .18s ease}
.article-gallery-grid a:hover img{transform:scale(1.02)}
.admin-gallery-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-top:10px}
.admin-gallery-item{display:flex!important;flex-direction:column;gap:5px;border:1px solid var(--line);border-radius:10px;padding:7px;background:#fff}
.admin-gallery-item img{width:100%;height:110px;object-fit:cover;border-radius:7px}
.admin-gallery-item span{font-size:12px;font-weight:700}
.admin-gallery-item input{width:auto!important;margin:0 5px 0 0!important}
@media(max-width:900px){
  .article-gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .article-gallery-grid img{height:190px}
  .admin-gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:520px){
  .article-gallery-grid{grid-template-columns:1fr 1fr;gap:8px}
  .article-gallery-grid img{height:150px}
}

/* v2.11 image rendering reliability */
.article-image{
  display:block;
  width:100%;
  height:auto;
  max-height:560px;
  object-fit:contain;
  background:#f4f7f5;
}
.news-card>img{
  display:block;
  width:100%;
  height:220px;
  object-fit:cover;
  background:#edf3f0;
}
.article-gallery-grid img{
  background:#edf3f0;
}
@media(max-width:700px){
  .article-image{max-height:420px}
  .news-card>img{height:210px}
}

/* v2.12 sponsor/image path repair */
.sponsor-item{display:flex;align-items:center;justify-content:center;min-width:120px;min-height:82px}
.sponsor-item img{display:block;height:70px;width:auto;max-width:160px;object-fit:contain}
.sponsor-fallback{width:130px;min-height:78px;border:1px solid var(--line);border-radius:10px;background:#f7faf8;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:8px;color:var(--primary)}
.sponsor-fallback b{font-size:22px}
.sponsor-fallback small{font-size:10px;line-height:1.2;margin-top:4px}
.sponsor-admin-list{display:grid;gap:14px}
.sponsor-admin-row{display:grid;grid-template-columns:150px 1fr 1fr 90px 1.25fr 90px 150px;gap:10px;align-items:end;border:1px solid var(--line);border-radius:12px;padding:12px}
.sponsor-admin-row label{font-weight:700;font-size:12px}
.sponsor-admin-row input{width:100%;padding:9px;border:1px solid #cbd9d2;border-radius:8px;margin-top:5px}
.sponsor-admin-preview{display:flex;flex-direction:column;gap:5px;align-items:flex-start}
.sponsor-admin-preview .admin-logo{width:120px;height:70px;object-fit:contain;background:#fff;border:1px solid var(--line);padding:5px}
.missing-logo{width:120px;height:70px;display:grid;place-items:center;background:#fff0f0;border:1px solid #e7b9b9;border-radius:7px;font-size:11px;font-weight:900;text-align:center}
.ok-text{color:#176b40}.bad-text{color:#a42020}.sponsor-active input{width:auto}.sponsor-admin-actions{white-space:nowrap}
@media(max-width:900px){
 .sponsor-grid{gap:18px}
 .sponsor-item{min-width:100px}
 .sponsor-item img{height:58px;max-width:130px}
 .sponsor-admin-row{grid-template-columns:1fr}
}

/* v2.13 Admin match date readability */
.admin-date-display{
  font-weight:800;
  color:var(--primary);
  font-size:12px;
  margin-bottom:4px;
  white-space:nowrap;
}
.admin-time-display{
  font-weight:700;
  color:#50645b;
  font-size:11px;
  margin-bottom:3px;
}

/* v2.14 definitive Admin date display fix */
.admin-date-display{
  display:block;
  font-size:13px;
  font-weight:900;
  color:var(--primary);
  margin-bottom:3px;
  white-space:nowrap;
}
.admin-time-display{
  display:block;
  font-size:12px;
  font-weight:800;
  color:#50645b;
  margin-bottom:5px;
}

/* v2.15 official schedule sync and Admin/public date parity */
.admin-schedule-display{
  display:block;
  font-weight:900;
  color:var(--primary);
  font-size:13px;
  margin-bottom:6px;
  white-space:normal;
}
.admin-edit-fields{
  display:flex;
  gap:4px;
  align-items:center;
}
.admin-edit-fields input[type=date]{min-width:125px}
.admin-edit-fields input[type=time]{min-width:88px}
@media(max-width:900px){
  .admin-edit-fields{flex-direction:column;align-items:stretch}
}

/* v2.16 next matchday fixtures on homepage */
.matchday-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
.next-matchday-list{display:grid;gap:8px}
.next-matchday-item{
  display:grid;
  grid-template-columns:70px 1fr 120px;
  gap:10px;
  align-items:center;
  padding:10px 0;
  border-bottom:1px solid var(--line);
}
.next-matchday-item:last-child{border-bottom:0}
.next-matchday-time{font-weight:900;color:var(--primary)}
.next-matchday-teams{display:grid;grid-template-columns:1fr auto 1fr;gap:8px;align-items:center}
.next-matchday-teams span{font-size:11px;font-weight:900;color:var(--accent)}
.next-matchday-venue{text-align:right;font-size:12px;color:var(--muted);font-weight:700}
@media(max-width:700px){
  .next-matchday-item{grid-template-columns:56px 1fr}
  .next-matchday-venue{grid-column:2;text-align:left}
  .next-matchday-teams{grid-template-columns:1fr;gap:2px}
  .next-matchday-teams span{display:none}
}

/* v2.17 home standings toggle, matchday results, cleaner Admin Match Centre */
.group-toggle{display:flex;gap:7px;overflow:auto;margin-bottom:12px;padding-bottom:3px}
.group-toggle a{white-space:nowrap;border:1px solid var(--line);padding:7px 10px;border-radius:999px;font-size:11px;font-weight:900;background:#fff}
.group-toggle a.active{background:var(--primary);color:#fff;border-color:var(--primary)}
.matchday-results-list{display:grid}
.matchday-result-item{display:grid;grid-template-columns:62px 1fr 72px 1fr 105px;gap:8px;align-items:center;padding:11px 0;border-bottom:1px solid var(--line)}
.matchday-result-item:last-child{border-bottom:0}
.result-time{font-size:12px;font-weight:800;color:var(--muted)}
.result-venue{text-align:right;font-size:12px;color:var(--muted)}
.admin-match-config{border-top:4px solid var(--accent)}
@media(max-width:700px){
 .matchday-result-item{grid-template-columns:50px 1fr 58px 1fr}
 .result-venue{grid-column:2/-1;text-align:left}
}

/* v2.19 unified team admin + public livestream/video dashboard */
.team-admin-shell{display:grid;grid-template-columns:260px minmax(0,1fr);gap:18px;align-items:start}
.team-admin-directory{position:sticky;top:14px;max-height:calc(100vh - 40px);overflow:auto}
.team-admin-list{padding:8px}
.team-admin-list a{display:flex;gap:10px;align-items:center;padding:9px;border-radius:9px}
.team-admin-list a:hover,.team-admin-list a.active{background:#e5f3ec}
.team-admin-list img,.team-admin-list .placeholder-logo{width:40px;height:40px;object-fit:contain;flex:0 0 40px}
.team-admin-list span:last-child{display:flex;flex-direction:column}
.team-admin-list small{color:var(--muted)}
.team-admin-logo{width:110px;height:110px;object-fit:contain;border:1px solid var(--line);border-radius:12px;padding:5px}
.admin-add-box,.team-inline-record{border:1px solid var(--line);border-radius:10px;margin:8px 0;background:#fff}
.admin-add-box summary,.team-inline-record summary{cursor:pointer;padding:12px;font-weight:800}
.admin-add-box form,.team-inline-record form{padding:12px;border-top:1px solid var(--line)}
.team-inline-record summary{display:flex;align-items:center;gap:12px}
.team-inline-record summary img{width:38px;height:38px;border-radius:50%;object-fit:cover}
.team-inline-record summary span{margin-left:auto;color:var(--muted);font-size:12px}

.watch-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.watch-media{background:#061b14;aspect-ratio:16/9;display:grid;place-items:center;overflow:hidden}
.watch-media iframe,.watch-media video,.watch-media img{width:100%;height:100%;border:0;object-fit:cover}
.video-thumb-placeholder{width:100%;height:100%;min-height:120px;display:grid;place-items:center;background:linear-gradient(135deg,#041f16,#0a6b3f);color:#fff;font-size:44px}
.match-video-public-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.match-video-public-item{border:1px solid var(--line);border-radius:12px;overflow:hidden}
.match-video-public-item>div:last-child{padding:12px}
.match-video-admin-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.video-admin-item{display:flex;gap:10px;border:1px solid var(--line);border-radius:10px;padding:10px}
.video-admin-item>img,.video-admin-item>.video-thumb-placeholder{width:110px;height:75px;min-height:75px;object-fit:cover;border-radius:7px}
.home-video-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.home-video-card{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff}
.home-video-card>img,.home-video-card>.video-thumb-placeholder{width:100%;height:130px;min-height:130px;object-fit:cover}
.home-video-card>div:last-child{padding:10px;display:flex;flex-direction:column;gap:6px}
.home-video-card small{color:var(--muted)}
@media(max-width:900px){
 .team-admin-shell{grid-template-columns:1fr}
 .team-admin-directory{position:relative;top:auto;max-height:330px}
 .watch-grid,.match-video-public-grid{grid-template-columns:1fr}
 .match-video-admin-grid{grid-template-columns:1fr}
 .home-video-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:520px){.home-video-grid{grid-template-columns:1fr}}

/* v2.20 existing streams/videos aggregation and match-side display */
.watch-match-strip{display:grid;grid-template-columns:1fr 150px 1fr;align-items:center;gap:12px;padding:13px 15px;background:var(--primary);color:#fff}
.watch-team-side{display:flex;flex-direction:column;gap:3px}
.watch-team-side b{font-size:17px}
.watch-team-side .small{color:#bad6c8}
.away-side{text-align:right;align-items:flex-end}
.watch-match-centre{text-align:center;display:flex;flex-direction:column;gap:5px;align-items:center}
.watch-match-centre small{font-size:11px;color:#d8ebe1}
.watch-live-card{box-shadow:0 0 0 2px #d44141,0 8px 28px rgba(0,0,0,.08)}
.live-badge{background:#d92323!important;color:#fff!important;animation:kafitiPulse 1.7s infinite}
@keyframes kafitiPulse{0%,100%{opacity:1}50%{opacity:.62}}
@media(max-width:650px){
 .watch-match-strip{grid-template-columns:1fr 88px 1fr;padding:10px 9px;gap:5px}
 .watch-team-side b{font-size:13px}
 .watch-match-centre small{font-size:9px}
}

/* v2.21 video dashboard results */
.watch-score{
  font-size:24px;
  line-height:1;
  color:#fff;
  letter-spacing:.5px;
}
.video-result-line{
  margin:8px 0;
  padding:8px 10px;
  border-radius:9px;
  background:#eef5f1;
  color:var(--primary);
}
.video-result-line strong{font-size:18px}
.home-video-score{
  font-size:18px;
  color:var(--primary);
}

/* v2.22 batch match events */
.batch-events-table{min-width:1180px}
.batch-events-table th,.batch-events-table td{padding:7px 5px;vertical-align:middle}
.batch-events-table select,.batch-events-table input{width:100%;min-width:105px;padding:8px;border:1px solid #cbd9d2;border-radius:7px;background:#fff}
.batch-events-table td:nth-child(5) input{min-width:70px;width:70px}
.batch-events-table .check-cell{text-align:center}
.batch-events-table .check-cell input{width:auto;min-width:0}
.row-remove{border:0;background:#f4dddd;color:#8f2020;border-radius:7px;width:30px;height:30px;font-size:20px;cursor:pointer}
.batch-event-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}
@media(max-width:900px){.batch-events-table{min-width:1050px}}

/* v2.23 batch line-up/substitution + edit/delete */
.batch-lineup-table{min-width:760px}.batch-subs-table{min-width:1050px}
.batch-lineup-table select,.batch-subs-table select,.batch-subs-table input{width:100%;padding:8px;border:1px solid #cbd9d2;border-radius:7px;background:#fff}
.inline-edit-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:12px;background:#f7faf8;border-radius:9px}
.inline-edit-form label{font-size:12px;font-weight:800}.inline-edit-form select,.inline-edit-form input{width:100%;padding:8px;border:1px solid #cbd9d2;border-radius:7px;margin-top:4px;background:#fff}
.delete-btn{border:0;background:#b72b2b;color:#fff;padding:10px 14px;border-radius:9px;font-weight:800;cursor:pointer}
@media(max-width:900px){.inline-edit-form{grid-template-columns:1fr}}

/* v2.24 qualification highlighting */
tr.qualify-direct{
  background:#e8f6ee;
  box-shadow:inset 4px 0 0 #138a50;
}
tr.qualify-third{
  background:#fff7d9;
  box-shadow:inset 4px 0 0 #e6b51e;
}
.qualification-tag{
  display:inline-block;
  margin-left:6px;
  padding:3px 7px;
  border-radius:999px;
  background:#138a50;
  color:#fff;
  font-size:9px;
  font-weight:900;
  vertical-align:middle;
  white-space:nowrap;
}
.qualification-tag.third{
  background:#d29d00;
}

/* v2.26 Super Admin audit trail and recovery */
.audit-action{display:inline-block;padding:4px 8px;border-radius:999px;font-size:10px;font-weight:900;background:#e9efec}
.audit-action.delete{background:#ffe2e2;color:#9d1e1e}.audit-action.save,.audit-action.update,.audit-action.post{background:#e3f4ea;color:#176b40}
.audit-json{white-space:pre-wrap;max-width:500px;max-height:280px;overflow:auto;background:#10251d;color:#e4f0ea;padding:10px;border-radius:8px;font-size:11px}
.recovery-warning{border:2px solid #d69b25}.recovery-warning .card-head{background:#71520f}

/* v2.28 News match auto-link + bilingual editor */
.team-link-panel{border:1px solid var(--line);border-radius:12px;padding:14px;background:#f8fbf9}
.team-link-head,.language-editor-head,.translation-pane-title{display:flex;justify-content:space-between;gap:12px;align-items:center}
.match-auto-teams{display:flex;gap:10px;align-items:center;margin:10px 0}
.compact{padding:7px 10px;font-size:12px}
.language-editor{border:1px solid #bcd5c8;border-radius:14px;padding:16px;background:#f7fbf8}
.source-language-toggle{display:flex;gap:14px;flex-wrap:wrap}
.translation-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:12px}
.translation-pane{border:1px solid var(--line);border-radius:12px;padding:14px;background:white}
.translation-pane label{display:block;margin-top:12px}
.translation-pane input,.translation-pane textarea{width:100%;margin-top:5px}
.translated-pane{background:#fbfcfb}
.translation-status{margin-top:10px;padding:9px 11px;border-radius:8px;background:#e9f4ee;font-size:12px;color:#205a3c}
@media(max-width:900px){.translation-grid{grid-template-columns:1fr}.language-editor-head,.team-link-head{align-items:flex-start;flex-direction:column}}

/* v2.29 public media dashboard */
.media-dashboard-hero{display:flex;justify-content:space-between;align-items:end;gap:24px;padding:22px 0}
.media-dashboard-hero h1{margin:4px 0 8px;font-size:42px}
.media-dashboard-count{min-width:120px;text-align:center;border:1px solid var(--line);background:white;border-radius:16px;padding:16px}
.media-dashboard-count strong{display:block;font-size:34px;color:var(--primary)}
.media-dashboard-count span{font-size:12px;color:var(--muted);text-transform:uppercase;font-weight:800}
.media-filter-form{display:grid;grid-template-columns:1fr 1.2fr 1.7fr auto;gap:12px;align-items:end}
.media-filter-actions{display:flex;gap:8px}
.public-media-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:20px}
.public-media-card{position:relative;display:block;min-height:360px;border-radius:16px;overflow:hidden;background:#071d15;color:white;box-shadow:0 8px 22px rgba(0,0,0,.08)}
.public-media-image{position:absolute;inset:0}
.public-media-image img{width:100%;height:100%;object-fit:cover;transition:transform .35s ease}
.public-media-card:hover .public-media-image img{transform:scale(1.04)}
.public-media-overlay{position:absolute;inset:auto 0 0 0;padding:60px 16px 16px;background:linear-gradient(transparent,rgba(1,21,14,.94))}
.public-media-overlay h2{margin:8px 0 5px;font-size:20px;color:white}
.public-media-overlay p{margin:4px 0;color:#e0ece6;font-size:13px}
.public-media-badges{display:flex;gap:6px;flex-wrap:wrap}
.alt-badge{background:#dcae18!important;color:#10251d!important}
.media-match-link{font-weight:800}
.media-date{display:block;margin-top:7px;font-size:11px;color:#bdd1c6}
.home-media-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.home-media-item{position:relative;display:block;height:180px;border-radius:12px;overflow:hidden;background:#061c14}
.home-media-item img{width:100%;height:100%;object-fit:cover}
.home-media-item span{position:absolute;left:0;right:0;bottom:0;padding:30px 10px 10px;background:linear-gradient(transparent,rgba(0,0,0,.8));color:white;font-weight:800;font-size:13px}
@media(max-width:1000px){.public-media-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.media-filter-form{grid-template-columns:1fr 1fr}.home-media-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.media-dashboard-hero{align-items:flex-start}.media-dashboard-hero h1{font-size:34px}.media-dashboard-count{min-width:88px}.public-media-grid{grid-template-columns:1fr}.media-filter-form{grid-template-columns:1fr}.media-filter-actions{width:100%}.home-media-grid{grid-template-columns:1fr 1fr}.home-media-item{height:135px}}

/* v2.30 media download watermark controls */
.public-media-card{display:flex;flex-direction:column;min-height:420px}
.public-media-mainlink{position:relative;display:block;flex:1;min-height:360px;color:inherit}
.public-media-actions{display:grid;grid-template-columns:1.45fr .8fr;gap:8px;padding:10px;background:#fff}
.media-download-btn,.media-details-btn{display:flex;align-items:center;justify-content:center;text-align:center;padding:9px 10px;border-radius:8px;font-size:11px;font-weight:900}
.media-download-btn{background:var(--primary);color:#fff}
.media-details-btn{background:#e8f0ec;color:var(--primary)}
.media-download-btn:hover,.media-details-btn:hover{transform:translateY(-1px)}
@media(max-width:650px){.public-media-actions{grid-template-columns:1fr}.public-media-mainlink{min-height:330px}}

/* v2.31 preserve original image aspect ratio on desktop and mobile */
.public-media-card{
  min-height:0!important;
  height:auto!important;
  overflow:hidden;
}
.public-media-mainlink{
  position:relative!important;
  display:block!important;
  min-height:0!important;
  height:auto!important;
}
.public-media-image{
  position:relative!important;
  inset:auto!important;
  width:100%!important;
  height:auto!important;
  min-height:0!important;
  background:#071d15;
  display:block!important;
}
.public-media-image img{
  display:block!important;
  width:100%!important;
  height:auto!important;
  max-width:100%!important;
  max-height:none!important;
  object-fit:contain!important;
  object-position:center!important;
  aspect-ratio:auto!important;
  transition:none!important;
}
.public-media-card:hover .public-media-image img{
  transform:none!important;
}
.public-media-overlay{
  position:relative!important;
  inset:auto!important;
  padding:14px 16px 16px!important;
  background:#071d15!important;
}
.home-media-item{
  height:auto!important;
  min-height:0!important;
  display:flex!important;
  flex-direction:column!important;
  background:#061c14;
}
.home-media-item img{
  display:block!important;
  width:100%!important;
  height:auto!important;
  max-width:100%!important;
  max-height:none!important;
  object-fit:contain!important;
  object-position:center!important;
  aspect-ratio:auto!important;
  background:#061c14;
}
.home-media-item span{
  position:relative!important;
  left:auto!important;
  right:auto!important;
  bottom:auto!important;
  display:block!important;
  padding:10px 12px!important;
  background:#061c14!important;
  color:#fff!important;
}
@media(max-width:1000px){
  .public-media-image img,.home-media-item img{
    width:100%!important;
    height:auto!important;
    object-fit:contain!important;
  }
}
@media(max-width:650px){
  .public-media-mainlink{min-height:0!important}
  .home-media-grid{grid-template-columns:1fr!important}
  .public-media-image img,.home-media-item img{
    width:100%!important;
    height:auto!important;
    max-height:none!important;
    object-fit:contain!important;
  }
}

/* v2.32 final media image fit: show whole image without crop on phone and desktop */
.public-media-image{
  position:relative!important;
  width:100%!important;
  height:auto!important;
  min-height:0!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  overflow:hidden!important;
  background:#eef3f0!important;
  padding:10px!important;
  box-sizing:border-box!important;
}
.public-media-image img{
  display:block!important;
  width:auto!important;
  height:auto!important;
  max-width:100%!important;
  max-height:72vh!important;
  object-fit:contain!important;
  object-position:center!important;
  aspect-ratio:auto!important;
  margin:0 auto!important;
}
.home-media-item{
  height:auto!important;
  min-height:0!important;
  display:flex!important;
  flex-direction:column!important;
  overflow:hidden!important;
}
.home-media-item img{
  display:block!important;
  width:auto!important;
  height:auto!important;
  max-width:100%!important;
  max-height:68vh!important;
  object-fit:contain!important;
  object-position:center!important;
  margin:0 auto!important;
  background:#eef3f0!important;
}
@media(min-width:901px){
  .public-media-image img{max-height:70vh!important}
  .home-media-item img{max-height:520px!important}
}
@media(max-width:900px){
  .public-media-grid{grid-template-columns:1fr!important}
  .home-media-grid{grid-template-columns:1fr!important}
  .public-media-image img{max-height:72vh!important}
  .home-media-item img{max-height:68vh!important}
}
@media(max-width:650px){
  .public-media-image{padding:6px!important}
  .public-media-image img{
    width:auto!important;
    height:auto!important;
    max-width:100%!important;
    max-height:70vh!important;
    object-fit:contain!important;
  }
  .home-media-item img{
    width:auto!important;
    height:auto!important;
    max-width:100%!important;
    max-height:64vh!important;
    object-fit:contain!important;
  }
}

/* v2.33 road-to-final bracket */
.road-bracket{display:grid;grid-template-columns:1.4fr .9fr 1.4fr;gap:18px;align-items:start}
.road-side,.road-center{background:#f8fbf9;border:1px solid var(--line);border-radius:18px;padding:16px}
.road-side-title{font-size:12px;font-weight:900;letter-spacing:.16em;color:#6e8579;text-transform:uppercase;margin-bottom:10px}
.road-columns{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;align-items:start}
.road-columns-right{grid-template-columns:repeat(3,1fr)}
.road-column h3{margin:0 0 10px;color:var(--primary)}
.road-column-highlight{margin-bottom:14px}
.road-match-card{background:#fff;border:1px solid #d6e3db;border-left:4px solid var(--accent);border-radius:14px;padding:12px;margin-bottom:12px}
.road-match-label{font-size:11px;font-weight:900;letter-spacing:.08em;color:#6b8176;text-transform:uppercase;margin-bottom:5px}
.road-match-meta{font-size:12px;color:#6f8479;margin-bottom:9px}
.road-match-teams{display:grid;grid-template-columns:1fr auto 1fr;gap:10px;align-items:center}
.road-team{font-weight:900;color:#10251d}
.road-score{font-size:24px;font-weight:900;color:var(--primary);white-space:nowrap}
.road-match-footer{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-top:10px;font-size:11px;color:#6f8479;flex-wrap:wrap}
.road-note{font-size:12px;color:#5e756a;margin:-4px 0 10px}
.qualify-chip{display:inline-flex;align-items:center;padding:8px 12px;border-radius:999px;background:#eaf4ee;border:1px solid #cfe0d6;font-weight:800;margin:4px 8px 4px 0}
.stack-gap>*+*{margin-top:12px}
.r16-slot-row{display:grid;grid-template-columns:100px 1fr auto 1fr;gap:10px;align-items:center}
@media(max-width:1200px){
  .road-bracket{grid-template-columns:1fr}
  .road-columns,.road-columns-right{grid-template-columns:1fr}
}
@media(max-width:700px){
  .r16-slot-row{grid-template-columns:1fr}
}

/* v2.34 knockout bracket chart */
.ko-card .card-body{overflow-x:auto}
.ko-bracket-chart{display:grid;grid-template-columns:minmax(360px,1fr) minmax(260px,.72fr) minmax(360px,1fr);gap:20px;align-items:center;min-width:1180px}
.ko-half{display:grid;grid-template-columns:1.2fr 1fr .88fr;gap:18px;align-items:start}
.ko-right{grid-template-columns:.88fr 1fr 1.2fr}
.ko-stage-col h3,.ko-center h3{margin:0 0 12px;font-size:18px;font-weight:900;color:var(--primary);text-align:center}
.ko-stage-r16{padding-top:0}
.ko-stage-qf{padding-top:92px}
.ko-stage-sf{padding-top:214px}
.ko-right .ko-stage-sf{padding-top:214px}
.ko-right .ko-stage-qf{padding-top:92px}
.ko-match-box{position:relative;background:#fff;border:1px solid #d4e2d9;border-left:4px solid var(--accent);border-radius:14px;padding:11px 12px;margin-bottom:18px;box-shadow:0 2px 7px rgba(0,0,0,.04);min-height:124px}
.ko-match-label{font-size:11px;font-weight:900;letter-spacing:.06em;color:#6b8176;text-transform:uppercase}
.ko-match-time{font-size:12px;color:#6f8479;margin:6px 0 10px}
.ko-team-row{display:flex;justify-content:space-between;align-items:center;gap:8px}
.ko-team-name{font-weight:900;color:#10251d;line-height:1.25}
.ko-versus{font-size:22px;font-weight:900;color:var(--primary);margin:8px 0;text-align:left}
.ko-stage-badge{display:inline-flex;margin-top:8px;padding:4px 10px;border-radius:999px;background:#e8f2ec;color:var(--primary);font-size:11px;font-weight:900}
.ko-center{display:flex;flex-direction:column;gap:20px;align-self:center}
.ko-center-stack{background:#f9fbfa;border:1px solid #dce9e1;border-radius:18px;padding:14px}
.ko-third-stack{margin-top:12px}
.ko-third-note{margin:-4px 0 10px;color:#6f8479;font-size:12px}
.ko-match-box.connect-right::after{content:'';position:absolute;right:-18px;top:50%;width:18px;border-top:2px solid var(--accent)}
.ko-match-box.connect-left::before{content:'';position:absolute;left:-18px;top:50%;width:18px;border-top:2px solid var(--accent)}
/* connector stems */
.ko-left .ko-stage-r16 .ko-match-box:nth-child(2)::before,
.ko-left .ko-stage-r16 .ko-match-box:nth-child(3)::before,
.ko-left .ko-stage-r16 .ko-match-box:nth-child(4)::before,
.ko-left .ko-stage-r16 .ko-match-box:nth-child(5)::before{content:'';position:absolute;right:-18px;top:50%;height:0}
.ko-left .ko-stage-qf .ko-match-box:nth-child(2)::before,
.ko-left .ko-stage-qf .ko-match-box:nth-child(3)::before{content:'';position:absolute;right:-18px;top:50%;height:0}
.ko-bracket-chart small{font-size:11px;color:#6f8479}
@media(max-width:1240px){
  .ko-bracket-chart{min-width:1000px}
}
@media(max-width:860px){
  .ko-bracket-chart{grid-template-columns:1fr;min-width:0}
  .ko-half,.ko-right{grid-template-columns:1fr;gap:14px}
  .ko-stage-qf,.ko-stage-sf,.ko-right .ko-stage-qf,.ko-right .ko-stage-sf{padding-top:0}
  .ko-match-box.connect-right::after,.ko-match-box.connect-left::before{display:none}
  .ko-center{order:2}
}
/* stronger force to avoid old linear/raw layout */

/* v2.36 team profile data display repair */
.team-profile-selector{margin-bottom:14px}
.team-profile-selector .card-body{padding:12px 16px}
.team-profile-selector label{display:grid;grid-template-columns:auto minmax(220px,420px);gap:12px;align-items:center;font-weight:900}
.team-profile-selector select{width:100%;padding:10px;border:1px solid var(--line);border-radius:9px;background:#fff}
.team-tabs{position:sticky;top:0;z-index:8;background:#eef4f1;padding:8px 0;display:flex;gap:8px;overflow-x:auto}
.team-tabs a{white-space:nowrap;padding:9px 12px;border-radius:999px;background:#fff;border:1px solid var(--line);font-weight:800}
.team-tabs a:hover{background:var(--primary);color:#fff}
.news-mini img{object-fit:cover}
@media(max-width:700px){
  .team-profile-selector label{grid-template-columns:1fr}
  #fixtures .match-row,#results .match-row{grid-template-columns:1fr;gap:6px}
}

/* v2.37 awarded decisions */
.admin-decision-card{border:2px solid #d7a519}
.admin-decision-card .card-head{background:#6d5208}
.awarded-decision-public{margin-top:14px;padding:14px;border:1px solid #e1bd52;border-radius:12px;background:#fff8dd}
.awarded-decision-public p{margin:6px 0}
.awarded-title{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:8px}
.decision-badge{background:#d8a500!important;color:#18261f!important}
.decision-stat-cards{margin-bottom:18px}
.decision-stat-cards .card-body strong{font-size:34px;display:block;color:var(--primary)}

/* v2.38 conditional awarded decision panel */
#awarded_decision_panel[style*="display: none"]{display:none!important}
