:root{
  --bg:#f4f7fb;--panel:#fff;--text:#102033;--muted:#667085;--line:#dfe5ef;--blue:#175cd3;--blue2:#eff8ff;--navy:#07142c;--navy2:#0d1b3a;--green:#067647;--green2:#dcfae6;--gold:#fdb022;--gold2:#fff3d1;--red:#b42318;--shadow:0 12px 35px rgba(16,32,51,.08)
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;color:var(--text)}.container{width:min(1220px,calc(100% - 32px));margin:0 auto}.topbar{background:linear-gradient(135deg,#0b3f88,#1570ef);color:#fff;padding:32px 0 54px}.header-row{display:flex;align-items:flex-start;justify-content:space-between;gap:24px}.eyebrow{text-transform:uppercase;letter-spacing:.14em;font-size:12px;font-weight:800;opacity:.85}h1{font-size:42px;line-height:1.05;margin:8px 0}.subtitle{margin:0;opacity:.9}.login-card{background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.25);border-radius:18px;padding:14px;min-width:310px;backdrop-filter:blur(12px)}.login-status{font-weight:800;margin-bottom:10px}.login-form{display:grid;grid-template-columns:1fr 90px 80px;gap:8px}select,input,button{border-radius:10px;border:1px solid var(--line);padding:10px 12px;font:inherit}button{background:var(--gold);border-color:var(--gold);font-weight:900;cursor:pointer}.primary{background:#155eef;border-color:#155eef;color:#fff}.secondary{background:#fff;color:var(--blue);border-color:#fff}.hidden{display:none!important}.status-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:-28px}.status-card,.panel{background:var(--panel);border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow)}.status-card{padding:18px;display:flex;gap:14px;align-items:center}.status-icon{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;font-size:21px}.status-icon.green{background:#dcfae6}.status-icon.blue{background:#d1e9ff}.status-icon.gold{background:#fff3d1}.label{text-transform:uppercase;letter-spacing:.08em;font-size:12px;font-weight:900;color:var(--muted)}.status-text{font-size:18px;font-weight:900;margin-top:4px}.tabs{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0 0}.tabs a{text-decoration:none;color:#1849a9;background:#fff;border:1px solid var(--line);border-radius:999px;padding:10px 14px;font-weight:850;font-size:13px}.tabs a:hover{border-color:#84caff;background:#eff8ff}.panel{padding:22px;margin-top:22px}.panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.panel h2{margin:0 0 6px;font-size:22px}.panel p{margin:0;color:var(--muted)}.cards{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin:18px 0}.leader-card{background:linear-gradient(180deg,#ffffff,#f8fbff);border:1px solid var(--line);border-radius:16px;padding:16px}.rank{font-weight:900;color:var(--blue);font-size:13px}.name{font-size:19px;font-weight:950;margin-top:6px}.pts{font-size:28px;font-weight:950;margin-top:8px}.split{font-size:12px;color:var(--muted);margin-top:4px}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:16px}table{border-collapse:collapse;width:100%;background:#fff}th,td{padding:13px 14px;text-align:left;border-bottom:1px solid var(--line);white-space:nowrap}th{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);background:#f9fafb}tr:last-child td{border-bottom:none}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:28px}.muted{color:var(--muted)}.empty-state{border:1px dashed #b2ddff;background:var(--blue2);border-radius:14px;padding:18px;margin-top:14px;color:#1849a9;font-weight:800}.rule-list{margin:14px 0 0;padding-left:20px;line-height:1.7}.pick-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-top:14px}.pick-card{border:1px solid var(--line);border-radius:14px;padding:14px;background:#fcfcfd}.pick-card h3{margin:0 0 8px}.pick-card div{font-size:13px;color:var(--muted);line-height:1.6}.mini-label{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--blue);font-weight:900;margin-bottom:5px}.group-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-top:16px}.group-owner-card,.summary-card{border:1px solid var(--line);border-radius:16px;background:#fcfcfd;padding:16px}.group-owner-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.group-owner-head h3,.summary-card h3{margin:0}.group-owner-head span{background:var(--gold2);border:1px solid #fedf89;border-radius:999px;padding:6px 10px;font-weight:900}.group-list{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-top:12px;font-size:13px;color:var(--muted)}.group-list b{display:inline-block;color:var(--blue);min-width:18px}.summary-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-top:14px}.summary-card p{margin:6px 0 10px!important;font-size:13px}.pill{display:inline-flex;align-items:center;border-radius:999px;padding:4px 8px;font-size:11px;font-weight:900}.pill.open{background:#d1fadf;color:#067647}.pill.locked{background:#f2f4f7;color:#475467}.bracket-head{align-items:center}.bracket-shell{margin-top:14px;border-radius:18px;overflow:hidden;border:1px solid #1d4ed8;background:radial-gradient(circle at 50% 45%,#15214a,#07142c 65%,#050b18);color:#fff}.bracket-toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:18px 20px;border-bottom:1px solid rgba(255,255,255,.12)}.bracket-toolbar h3{margin:0;font-size:19px}.bracket-toolbar p{margin:3px 0 0;color:#b9c4d8!important}.legend{display:flex;gap:12px;color:#c6d0e4;font-size:12px}.dot{width:9px;height:9px;border-radius:50%;display:inline-block;margin-right:5px}.dot.open{background:#12b76a}.dot.locked-dot{background:#98a2b3}.bracket-board{display:grid;grid-template-columns:repeat(auto-fit,minmax(215px,1fr));gap:18px;padding:20px;align-items:start}.bracket-column{position:relative;display:grid;gap:14px}.bracket-stage-title{text-align:center;text-transform:uppercase;letter-spacing:.1em;color:#d9e3ff;font-weight:950;font-size:12px}.match-card{background:rgba(7,18,43,.88);border:1px solid #2563eb;border-radius:12px;padding:12px;box-shadow:0 0 0 1px rgba(37,99,235,.15),0 10px 24px rgba(0,0,0,.25)}.match-card.locked{border-color:#667085;opacity:.75}.match-meta,.match-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;color:#b9c4d8;font-size:11px}.team-line{display:grid;grid-template-columns:1fr 58px;gap:9px;align-items:center;margin-top:9px}.team-line span{font-weight:900}.team-line input{width:58px;background:#111c35;color:#fff;border:1px solid rgba(255,255,255,.25);font-weight:900;text-align:center}.team-line input:disabled{opacity:.65}.match-footer{margin-top:10px}.match-footer button{padding:7px 10px;border-radius:8px}.match-footer button:disabled{background:#475467;border-color:#475467;color:#d0d5dd;cursor:not-allowed}.bracket-note{padding:13px 20px;border-top:1px solid rgba(255,255,255,.12);color:#c6d0e4;font-size:12px}.activity-log{border:1px solid var(--line);border-radius:14px;background:#fcfcfd;padding:14px;margin-top:12px}.activity-item.saved{background:#ecfdf3;border:1px solid #abefc6;border-radius:12px;padding:12px;color:#067647;font-weight:850}.footer{padding:28px 0;color:var(--muted);font-size:13px}@media(max-width:1000px){.cards,.pick-grid,.summary-grid{grid-template-columns:repeat(2,1fr)}.group-grid{grid-template-columns:1fr}.group-list{grid-template-columns:1fr}}@media(max-width:900px){.header-row,.two-col{display:block}.login-card{margin-top:20px}.status-grid{grid-template-columns:1fr}.bracket-toolbar{display:block}.legend{margin-top:10px}}@media(max-width:560px){.cards,.pick-grid,.summary-grid{grid-template-columns:1fr}.login-form{grid-template-columns:1fr}.topbar{padding:28px 0 44px}h1{font-size:32px}.bracket-board{grid-template-columns:1fr;padding:14px}.team-line{grid-template-columns:1fr 58px}}

/* Full tournament tree */
#tournamentTree{overflow-x:auto;padding:8px 0}.tree-board{min-width:1150px;background:radial-gradient(circle at center,#18254d 0,#07142d 52%,#030816 100%);border-radius:18px;padding:22px;display:grid;grid-template-columns:1fr 230px 1fr;gap:18px;color:#fff;border:1px solid #1f5eff}.tree-side{display:grid;grid-template-columns:1.1fr .9fr .75fr;gap:12px;align-items:start}.tree-side.right{direction:rtl}.tree-side.right>*{direction:ltr}.tree-col{display:grid;gap:10px}.tree-col h4,.tree-final h4{text-align:center;text-transform:uppercase;letter-spacing:.08em;font-size:12px;color:#b9c8ff;margin:0 0 4px}.tree-col.mid{padding-top:28px}.tree-col.small{padding-top:66px}.tree-final{display:grid;gap:14px;align-content:center;justify-items:stretch}.cup{text-align:center;font-size:68px;filter:drop-shadow(0 8px 20px rgba(255,255,255,.15))}.tree-match{background:rgba(5,13,32,.86);border:1px solid #1f5eff;border-radius:10px;padding:8px;box-shadow:0 0 0 1px rgba(255,255,255,.03),0 14px 22px rgba(0,0,0,.25)}.tree-match.future{border-color:#2f6fff;background:rgba(12,25,56,.74)}.tree-label{font-size:10px;color:#7fa6ff;margin-bottom:4px;text-transform:uppercase;letter-spacing:.06em}.tree-match .team{display:flex;align-items:center;gap:8px;min-height:26px;border-radius:6px;padding:3px 5px}.tree-match .team span{font-size:11px;color:#9fb4e8;min-width:30px}.tree-match .team b{font-size:13px;font-weight:800}.tree-match .team.winner{background:rgba(28,188,119,.14);outline:1px solid rgba(28,188,119,.35)}.tree-match input{margin-left:auto;width:34px;height:26px;border-radius:6px;border:1px solid rgba(255,255,255,.22);background:#121b32;color:#fff}.tree-score{margin-top:5px;font-size:11px;color:#b7c6e8;border-top:1px solid rgba(255,255,255,.09);padding-top:5px}.r32-detail-card{border:1px solid var(--line);border-radius:18px;padding:16px;background:#fff}.r32-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.r32-head h3{margin:0}.r32-head span{background:#fff4d6;border:1px solid #ffd05f;border-radius:999px;padding:8px 12px;font-weight:900}.r32-list{display:grid;gap:7px}.r32-list div{display:flex;justify-content:space-between;gap:10px;border-bottom:1px solid #eef2f7;padding-bottom:6px;font-size:13px}.r32-list b{color:#0b56d9}.group-list em{float:right;color:#0b56d9;font-style:normal;font-weight:900;margin-left:8px}.match-card{min-width:220px}.bracket-board{grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}
@media(max-width:900px){.tree-board{min-width:980px;grid-template-columns:1fr 190px 1fr;padding:14px}.tree-side{grid-template-columns:1fr .85fr .7fr;gap:8px}.tree-match .team b{font-size:12px}.cup{font-size:48px}}

/* Player scorer details and bracket/R32 detail upgrades */
.scorer-card .scorer-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:10px}.scorer-card .scorer-head span{background:#ecfdf3;border:1px solid #abefc6;color:#067647;border-radius:999px;padding:7px 11px;font-weight:950}.scorer-list{display:grid;gap:7px}.scorer-list div{display:flex;justify-content:space-between;align-items:center;gap:10px;border-bottom:1px solid #eef2f7;padding-bottom:6px}.scorer-list div:last-child{border-bottom:0}.scorer-list span{font-size:13px;color:#344054!important;line-height:1.3}.scorer-list em{display:block;color:#667085;font-style:normal;font-size:11px;margin-left:24px}.scorer-list b{font-size:15px;background:#f2f4f7;border-radius:8px;padding:3px 8px}.r32-list.detailed{max-height:520px;overflow:auto;padding-right:4px}.r32-row{align-items:flex-start!important}.r32-row span{font-size:13px;line-height:1.35}.r32-row small{display:block;color:#667085;margin-top:4px;font-size:11px}.player-bracket-note{margin:8px 0 12px;color:#475467}.personal-tree{grid-template-columns:1.05fr .85fr .75fr 220px .75fr .85fr 1.05fr;gap:10px;align-items:center}.personal-tree .tree-col{gap:10px}.personal-tree .tree-match{min-height:62px}.personal-tree .champion{border-color:#fdb022;background:rgba(253,176,34,.13)}.personal-tree .cup{font-size:24px;color:#fdb022;margin-top:10px;text-align:center}.tree-match .team b{white-space:normal}.tree-final .team{justify-content:center}.tree-final .tree-match{padding:12px}.bracket-shell{margin-top:18px}@media(max-width:1100px){.personal-tree{min-width:1250px}.summary-grid{grid-template-columns:1fr}.pick-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:650px){.pick-grid{grid-template-columns:1fr}.r32-list.detailed{max-height:none}}
.actual-fixture{margin-top:8px;border:1px solid rgba(255,255,255,.13);border-radius:10px;padding:8px;background:rgba(255,255,255,.035)}
.actual-label{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:#9fb4e8;font-weight:900;margin-bottom:4px}
.locked-fixture{margin-top:9px;border:1px dashed rgba(255,255,255,.22);border-radius:10px;padding:8px;color:#c6d0e4;font-size:11px;background:rgba(255,255,255,.025)}
.locked-fixture span{display:block;text-transform:uppercase;letter-spacing:.08em;color:#9fb4e8;font-weight:900;margin-bottom:3px}
.locked-fixture b{font-size:12px;color:#fff;font-weight:850}

.penalty-winner{margin-top:12px;padding:10px;border:1px dashed #93c5fd;border-radius:12px;background:#eff6ff;display:grid;gap:8px}
.penalty-winner label{display:flex;align-items:center;gap:8px;font-weight:800;color:#0f172a}
.penalty-winner input[type="radio"]{width:auto}

.scorer-list .active-scorer .scorer-name{font-weight:950;color:#101828;}
.scorer-list .eliminated-scorer .scorer-name{font-weight:500;color:#667085;}
.scorer-list .eliminated-scorer{opacity:.72;}

/* R16 live results and prediction table */
.r16-live-wrap{overflow-x:auto;}
.r16-table-wrap{overflow-x:auto;}
.r16-live-table{min-width:1100px;}
.r16-live-table th,.r16-live-table td{vertical-align:top;white-space:nowrap;}
.r16-live-table td:first-child{min-width:230px;white-space:normal;}
.r16-live-table small{display:block;color:#667085;margin-top:4px;font-size:12px;}
.status-pill{display:inline-flex;align-items:center;gap:4px;border-radius:999px;padding:4px 8px;font-size:12px;font-weight:700;}
.status-pill.final{background:#ecfdf3;color:#067647;}
.status-pill.live{background:#fff1f3;color:#c01048;}
.status-pill.upcoming{background:#f2f4f7;color:#344054;}
.hidden-pred{color:#98a2b3;font-style:italic;}
.no-pred{color:#b42318;}
.pts-cell{text-align:center;font-weight:700;}
.r16-complete{background:#fcfffd;}
.r16-live{background:#fffafb;}
.r16-upcoming{background:#fff;}
.r16-live-note{margin-top:10px;color:#667085;font-size:13px;}

/* Stadium photo top banner override - optimized BC Place panorama */
.topbar{
  position:relative;
  min-height:320px;
  background:
    linear-gradient(90deg, rgba(3,7,18,.82) 0%, rgba(3,7,18,.54) 42%, rgba(3,7,18,.28) 100%),
    url('/assets/worldcup-banner.png') center 46% / cover no-repeat !important;
  color:#fff;
  padding:42px 0 64px;
  overflow:hidden;
}
.topbar .container{position:relative;z-index:1;}
.topbar h1,.topbar .eyebrow,.topbar .subtitle{ text-shadow:0 2px 14px rgba(0,0,0,.68); }
.topbar .login-card{background:rgba(0,0,0,.34);border-color:rgba(255,255,255,.24);}

@media(max-width:900px){
  .topbar{
    min-height:270px;
    padding:34px 0 52px;
    background-position:center 48% !important;
  }
}
@media(max-width:560px){
  .topbar{
    min-height:230px;
    padding:28px 0 42px;
    background-position:center 50% !important;
  }
}

/* R16 section uses the same card/list presentation as R32 */
#r16LiveTable.summary-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-top:14px;}
#r16LiveTable .r32-detail-card{background:#fff;}
@media(max-width:1100px){#r16LiveTable.summary-grid{grid-template-columns:1fr;}}

/* Keep prediction-round columns in one horizontal sequence:
   R32 → R16 → QF → SF → 3rd Place → Final. */
.bracket-board{
  grid-template-columns:none;
  grid-auto-flow:column;
  grid-auto-columns:minmax(230px,1fr);
  overflow-x:auto;
  overscroll-behavior-x:contain;
}

@media(max-width:560px){
  .bracket-board{
    grid-template-columns:none;
    grid-auto-flow:column;
    grid-auto-columns:230px;
  }
}
