/* Shared icon sizing and game criteria. Loaded after the legacy theme. */
:root{--emblem-size:48px;--criterion-gap:12px}
.media-icon,.award-icon,.flag-icon{display:inline-flex;align-items:center;justify-content:center;position:relative;flex:0 0 auto;margin:0;padding:0;background:transparent;border:0;border-radius:0;box-shadow:none;overflow:visible;vertical-align:middle}
.media-icon,.award-icon{width:var(--emblem-size);height:var(--emblem-size)}
.flag-icon{width:var(--emblem-size);height:calc(var(--emblem-size)*.75)}
.media-icon img,.award-icon img,.flag-icon img{position:static;inset:auto;display:block;min-width:0;min-height:0;width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain;object-position:center;background:transparent;border-radius:0}
.award-icon>span,.flag-icon>span{display:none}
.award-icon:not(:has(img))>span,.flag-icon:not(:has(img))>span{display:block}
.bingo-board{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;align-items:stretch;max-width:1000px}
.bingo-tile{min-width:0;min-height:186px;padding:16px 12px;gap:14px;text-align:left;justify-content:space-between}
.bingo-criteria{display:flex;flex-direction:column;justify-content:center;gap:10px;min-width:0}
.bingo-criterion{display:grid;grid-template-columns:60px minmax(0,1fr);align-items:center;gap:var(--criterion-gap);width:100%;min-width:0;min-height:64px}
.bingo-emblem{display:flex;align-items:center;justify-content:center;gap:6px;width:60px;min-height:var(--emblem-size);min-width:0;flex:0 0 auto}
.bingo-emblem .media-icon,.bingo-emblem .award-icon{width:var(--emblem-size);height:var(--emblem-size);margin:0}
.bingo-emblem .flag-icon{width:var(--emblem-size);height:calc(var(--emblem-size)*.75);margin:0}
.bingo-emblem:has(.award-icon+.award-icon) .award-icon{width:27px;height:38px}
.bingo-criterion-copy{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:5px;min-width:0}
.bingo-tile .bingo-qualifier{font-size:.875rem;font-weight:500;line-height:1.3;color:#bfd2eb}
.bingo-tile .bingo-criterion-name{font-size:1rem;font-weight:700;line-height:1.3;color:#f3f7ff;overflow-wrap:anywhere;word-break:normal}
.bingo-tile .bingo-and{font-size:.75rem;line-height:1.4;letter-spacing:.06em}
.bingo-tile .bingo-placement{min-height:32px;margin:0;padding-top:12px;line-height:1.4}
.bingo-tile.filled .bingo-placement{font-size:1rem}
.grid-table{grid-template-columns:minmax(105px,.8fr) repeat(3,minmax(0,1fr));gap:10px;max-width:820px;align-items:stretch}
.grid-head{padding:10px 6px;min-height:120px;font-size:.875rem;min-width:0}
.grid-head .bingo-criterion{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:10px;min-height:100px}
.grid-head .bingo-emblem{width:60px;min-height:var(--emblem-size)}
.grid-head .media-icon,.grid-head .award-icon{width:var(--emblem-size);height:var(--emblem-size);margin:0}
.grid-head .flag-icon{width:var(--emblem-size);height:calc(var(--emblem-size)*.75);margin:0}
.grid-head .bingo-criterion-copy{align-items:center;gap:4px;text-align:center}
.grid-head .bingo-qualifier{font-size:.875rem;font-weight:500;color:#bfd2eb;line-height:1.3}
.grid-head .bingo-criterion-name{font-size:.9375rem;line-height:1.35;overflow-wrap:anywhere}
.grid-square{min-height:130px;padding:12px;min-width:0}
.career-clubs{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px;align-items:stretch}
.career-stop{padding:16px 12px;gap:12px;justify-content:flex-start}
.career-stop .career-crest{width:64px;height:64px;margin:0;flex:0 0 64px}
.career-stop .career-hidden-crest{width:64px;height:64px;flex:0 0 64px}
.career-stop strong{font-size:1rem;line-height:1.35;min-height:2.7em;display:flex;align-items:center;justify-content:center;width:100%}
.career-dates{font-size:.875rem;line-height:1.4;margin-top:auto}
.quiz-theme-icon{display:flex;align-items:center;justify-content:center;gap:6px;flex-shrink:0;width:60px;min-height:60px}
.quiz-theme-icon .media-icon,.quiz-theme-icon .award-icon{width:48px;height:48px}
.quiz-theme-icon .flag-icon{width:48px;height:36px}
.quiz-selected-theme .quiz-theme-icon{width:64px;height:64px}
.quiz-selected-theme .media-icon,.quiz-selected-theme .award-icon{width:56px;height:56px}
.quiz-final-theme .media-icon,.quiz-final-theme .award-icon{width:64px;height:64px}
.quiz-logo .media-icon{width:140px;height:140px}
.question>.award-icon{width:40px;height:48px;display:inline-grid;margin-right:12px;vertical-align:middle}
.answer>.media-icon,.answer>.award-icon{width:40px;height:40px}
.game-intro{line-height:1.6}.meta{flex-wrap:wrap;line-height:1.5}.game-controls{margin-bottom:20px}
@media(max-width:900px){.bingo-board{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:650px){
 :root{--emblem-size:40px;--criterion-gap:9px}
 .wrap{padding-left:12px;padding-right:12px}.panel{padding:20px 14px}
 .bingo-board{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
 .bingo-tile{padding:14px 10px;min-height:174px;gap:12px}
 .bingo-criterion{grid-template-columns:46px minmax(0,1fr);min-height:58px}
 .bingo-emblem{width:46px;gap:4px}
 .bingo-emblem:has(.award-icon+.award-icon) .award-icon{width:21px;height:32px}
 .bingo-tile .bingo-criterion-name{font-size:.875rem}
 .bingo-tile .bingo-qualifier{font-size:.875rem}
 .grid-table{grid-template-columns:minmax(72px,.8fr) repeat(3,minmax(0,1fr));gap:5px}
 .grid-head{padding:8px 3px;min-height:124px}
 .grid-head .bingo-criterion{gap:8px}
 .grid-head .bingo-criterion-name,.grid-head .bingo-qualifier{font-size:.875rem}
 .grid-square{padding:7px;min-height:106px}
 .career-clubs{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
 .career-stop{padding:14px 10px}.career-stop .career-crest,.career-stop .career-hidden-crest{width:56px;height:56px;flex-basis:56px}
 .career-stop strong{font-size:.9375rem}
 .quiz-logo .media-icon{width:112px;height:112px}
}
@media(max-width:370px){.bingo-criterion{display:flex;flex-direction:column;align-items:center;gap:9px}.bingo-criterion-copy{align-items:center;text-align:center}.bingo-tile{min-height:195px}.grid-table{grid-template-columns:68px repeat(3,minmax(0,1fr))}}
.quiz-theme-card{align-items:center;min-height:148px;gap:14px}
.quiz-theme-copy small,.quiz-theme-levels,.quiz-level-card small,.quiz-level-card>span:not(.quiz-level-stars){font-size:.875rem;line-height:1.45}
.quiz-theme-copy strong{line-height:1.3}
.media-credit{line-height:1.6;overflow-wrap:anywhere}
@media(max-width:900px){.quiz-theme-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:580px){.quiz-theme-grid{grid-template-columns:1fr}.quiz-theme-card{min-height:124px}.quiz-theme-icon{width:54px}.quiz-level-card>span:not(.quiz-level-stars){font-size:.875rem}}

/* Qualifier above; emblem and actual criterion name share one aligned row. */
.bingo-tile .bingo-criterion{display:flex;flex-direction:column;align-items:stretch;justify-content:center;gap:8px;min-height:74px}
.bingo-tile .bingo-qualifier{display:block;margin:0;text-align:left}
.bingo-criterion-body{display:grid;grid-template-columns:60px minmax(0,1fr);align-items:center;gap:var(--criterion-gap);min-width:0;width:100%;min-height:var(--emblem-size)}
.bingo-criterion-body .bingo-emblem{align-self:center;margin:0}
.bingo-criterion-body .bingo-criterion-name{align-self:center;display:block;margin:0;line-height:1.35}
.grid-head .bingo-criterion-body{display:contents}
.grid-head .bingo-emblem{order:1}
.grid-head .bingo-qualifier{order:2;margin:0}
.grid-head .bingo-criterion-name{order:3;margin:0}
.question:has(>.award-icon){display:flex;align-items:center;gap:12px}
.question>.award-icon{margin:0;flex-shrink:0}
@media(max-width:650px){.bingo-criterion-body{grid-template-columns:46px minmax(0,1fr)}.bingo-tile .bingo-criterion{min-height:68px}.bingo-tile .bingo-qualifier,.bingo-criterion-body .bingo-criterion-name{text-align:left}}

/* These tall cups need a taller slot while staying centred on the label. */
.bingo-emblem .trophy-worldcup,.bingo-emblem .trophy-serie-a,
.grid-head .trophy-worldcup,.grid-head .trophy-serie-a{width:52px;height:64px}
.bingo-criterion-body:has(.trophy-worldcup),.bingo-criterion-body:has(.trophy-serie-a){min-height:64px}
.quiz-theme-icon .trophy-worldcup,.quiz-theme-icon .trophy-serie-a{width:48px;height:60px}
.question>.trophy-worldcup,.question>.trophy-serie-a{width:42px;height:56px}
@media(max-width:650px){.bingo-emblem .trophy-worldcup,.bingo-emblem .trophy-serie-a,.grid-head .trophy-worldcup,.grid-head .trophy-serie-a{width:42px;height:56px}.bingo-criterion-body:has(.trophy-worldcup),.bingo-criterion-body:has(.trophy-serie-a){min-height:56px}}

/* Compact Bingo layout; leave the other games' emblem sizing unchanged. */
.bingo-board{--emblem-size:36px;--criterion-gap:8px;max-width:900px;gap:8px}
.bingo-board .bingo-tile{min-height:132px;padding:10px;gap:8px}
.bingo-board .bingo-criteria{gap:5px}
.bingo-board .bingo-criterion{min-height:52px;gap:3px}
.bingo-board .bingo-criterion-body{grid-template-columns:42px minmax(0,1fr);min-height:36px;gap:8px}
.bingo-board .bingo-emblem{width:42px;min-height:36px;gap:4px}
.bingo-board .bingo-emblem .media-icon,.bingo-board .bingo-emblem .award-icon{width:36px;height:36px}
.bingo-board .bingo-emblem .flag-icon{width:36px;height:27px}
.bingo-board .bingo-emblem .trophy-worldcup,.bingo-board .bingo-emblem .trophy-serie-a{width:36px;height:44px}
.bingo-board .bingo-criterion-body:has(.trophy-worldcup),.bingo-board .bingo-criterion-body:has(.trophy-serie-a){min-height:44px}
.bingo-board .bingo-emblem:has(.award-icon+.award-icon) .award-icon{width:19px;height:30px}
.bingo-board .bingo-qualifier{font-size:.875rem;line-height:1.2}
.bingo-board .bingo-criterion-name{font-size:.875rem;line-height:1.3}
.bingo-board .bingo-and{font-size:.75rem;line-height:1.2;gap:5px}
.bingo-board .bingo-placement{min-height:26px;padding-top:7px;font-size:1rem;line-height:1.25}
.bingo-board .bingo-tile.filled .bingo-placement{font-size:.875rem}
.player-card{margin-bottom:14px;padding-top:8px;padding-bottom:12px}
@media(max-width:650px){.bingo-board{gap:7px}.bingo-board .bingo-tile{padding:9px;min-height:126px}.bingo-board .bingo-criterion-body{grid-template-columns:38px minmax(0,1fr);gap:6px}.bingo-board .bingo-emblem{width:38px}}

/* Morpion: fixed image track, then two independent text tracks. */
.grid-head .bingo-criterion{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:72px auto auto;align-items:center;justify-items:center;gap:8px;width:100%;min-height:0}
.grid-head .bingo-criterion-body{display:contents}
.grid-head .bingo-emblem{grid-column:1;grid-row:1;order:initial;display:flex;align-items:center;justify-content:center;width:64px;height:72px;min-height:72px;margin:0;padding:0}
.grid-head .bingo-qualifier{grid-column:1;grid-row:2;order:initial;margin:0;padding:0;line-height:1.4;text-align:center}
.grid-head .bingo-criterion-name{grid-column:1;grid-row:3;order:initial;margin:0;padding:0;line-height:1.4;text-align:center}
.grid-head .bingo-emblem .award-icon{display:flex;align-items:center;justify-content:center;width:48px;height:64px;min-height:64px;flex:0 0 48px;margin:0;padding:0}
.grid-head .bingo-emblem .award-icon img{position:static;display:block;width:48px;height:64px;max-width:48px;max-height:64px;object-fit:contain;object-position:center;margin:0;padding:0}
.grid-head .bingo-emblem .media-icon,.grid-head .bingo-emblem .media-icon img{width:48px;height:48px;max-width:48px;max-height:48px;flex-shrink:0}
.grid-head .bingo-emblem .flag-icon,.grid-head .bingo-emblem .flag-icon img{width:48px;height:36px;max-width:48px;max-height:36px;flex-shrink:0}
@media(max-width:650px){
 .grid-head .bingo-criterion{grid-template-rows:60px auto auto;gap:7px}
 .grid-head .bingo-emblem{width:48px;height:60px;min-height:60px}
 .grid-head .bingo-emblem .award-icon{width:40px;height:52px;min-height:52px;flex-basis:40px}
 .grid-head .bingo-emblem .award-icon img{width:40px;height:52px;max-width:40px;max-height:52px}
 .grid-head .bingo-emblem .media-icon,.grid-head .bingo-emblem .media-icon img{width:40px;height:40px;max-width:40px;max-height:40px}
 .grid-head .bingo-emblem .flag-icon,.grid-head .bingo-emblem .flag-icon img{width:40px;height:30px;max-width:40px;max-height:30px}
}

/* Replaced images must not create an implicit grid row of intrinsic height. */
.bingo-board .bingo-emblem .media-icon,.bingo-board .bingo-emblem .award-icon,.bingo-board .bingo-emblem .flag-icon{display:flex;align-items:center;justify-content:center;min-width:0;min-height:0}
.bingo-board .bingo-emblem .media-icon img,.bingo-board .bingo-emblem .award-icon img{width:36px;height:36px;max-width:36px;max-height:36px;min-width:0;min-height:0;flex:0 0 auto;object-fit:contain}
.bingo-board .bingo-emblem .flag-icon img{width:36px;height:27px;max-width:36px;max-height:27px;min-width:0;min-height:0;object-fit:contain}
.bingo-board .bingo-emblem .trophy-worldcup img,.bingo-board .bingo-emblem .trophy-serie-a img{width:36px;height:44px;max-width:36px;max-height:44px}
.bingo-board .bingo-emblem:has(.award-icon+.award-icon) .award-icon img{width:19px;height:30px;max-width:19px;max-height:30px}

/* Side advertising stays outside every game and reserves its final dimensions. */
.site-shell{max-width:1500px;margin-inline:auto}
.site-shell>.wrap{width:100%;min-width:0}
.ad-rail{display:none}
.ad-slot{position:relative;width:160px;border:1px dashed #ffffff24;border-radius:10px;background:#ffffff03;overflow:hidden}
.ad-label{display:block;padding:10px 8px;text-align:center;font-size:12px;font-weight:500;line-height:1.4;letter-spacing:.06em;text-transform:uppercase;color:#c1ddcd}
.ad-content{position:relative;width:160px;min-height:600px}
.ad-placeholder{height:600px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:10px;text-align:center;color:#b9d4c3;pointer-events:none}
.ad-placeholder span{font-size:12px;line-height:1.5}.ad-placeholder small{font-size:12px;opacity:.7}
.ad-slot[data-ad-state="loaded"] .ad-placeholder,.ad-slot:has([data-ad-content]>:not(.ad-placeholder)) .ad-placeholder{display:none}
@media(min-width:1360px){
 .site-shell{display:grid;grid-template-columns:160px minmax(0,1100px) 160px;justify-content:center;gap:16px;padding-inline:16px}
 .site-shell>.wrap{margin:0}
 .ad-rail{display:block;min-width:0;padding-top:270px;align-self:stretch}
 .ad-slot{position:sticky;top:24px}
}
@media(min-width:1360px) and (max-height:680px){.ad-slot{position:relative;top:auto}}

.grid-actions{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-top:18px}
.grid-actions .game-reset{margin:0}
.grid-abandon{border:1px solid #8ca6c1;padding:11px 17px;border-radius:8px;color:#e5efff}
.grid-abandon:hover{background:#243f62}
.grid-square.revealed{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;cursor:default;background:#132d47;border:1px dashed #79a7bf;opacity:1;padding:12px 8px}
.grid-solution-label{font-size:.65rem;line-height:1.3;letter-spacing:.035em;text-transform:uppercase;color:#a8c2dd}
.grid-solution-names{display:flex;flex-direction:column;gap:7px;width:100%;font-size:.82rem;font-weight:600;line-height:1.3;color:#e8f4ff;overflow-wrap:anywhere}
.grid-solution-names>span:first-child{color:#d4fc68}
@media(max-width:650px){.grid-square.revealed{gap:7px;padding:9px 5px}.grid-solution-label{font-size:.53rem}.grid-solution-names{font-size:.66rem;gap:5px}.grid-actions{align-items:stretch}.grid-actions>button{flex:1}}

.grid-victory{display:flex;align-items:center;gap:14px;border:1px solid #a7cb45;border-radius:12px;background:#233c34;padding:15px 18px;margin:18px 0;color:#efffce}
.grid-victory-star{font-size:2rem;line-height:1;color:#d4fc68}
.grid-victory>div{display:flex;flex-direction:column;gap:5px}
.grid-victory strong{font-size:1.25rem;color:#d4fc68}
.grid-victory>div>span{font-size:.86rem;line-height:1.45;color:#d7e5d7}
.grid-square.filled.winning{border-color:#d4fc68;background:#284d47;box-shadow:inset 0 0 0 1px #d4fc6866}
@media(max-width:650px){.grid-victory{padding:12px;gap:10px}.grid-victory strong{font-size:1.12rem}.grid-victory>div>span{font-size:.76rem}}

.grid-all-answers{margin:14px 0;font-size:13px}.grid-all-answers summary{cursor:pointer;font-weight:800;padding:12px;border:1px solid var(--line,#394459);border-radius:12px}.grid-answer-scroll{max-height:360px;overflow:auto;padding:12px}.grid-answer-scroll section{padding:10px 0;border-bottom:1px solid var(--line,#394459)}.grid-answer-scroll p{margin:6px 0;line-height:1.7;color:var(--muted,#b8c2d7)}

/* Show the entire current Ligue 1 trophy in its reserved emblem column. */
.bingo-board .bingo-emblem .trophy-ligue-1{width:36px;height:44px}
.bingo-board .bingo-emblem .trophy-ligue-1 img{width:36px;height:44px;max-width:36px;max-height:44px;object-fit:contain;object-position:center}
.bingo-board .bingo-criterion-body:has(.trophy-ligue-1){min-height:44px}

/* A scorer criterion owns one bounded group for its two separate images. */
.scorer-emblem{display:flex;align-items:center;justify-content:center;gap:4px;width:60px;height:52px;max-width:100%;flex:0 0 auto}
.scorer-emblem>.award-icon{width:28px;height:40px;min-width:0;min-height:0;flex:0 0 28px}
.scorer-emblem>.award-icon img{position:static;width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain}
.grid-head .bingo-emblem .scorer-emblem>.award-icon{width:28px;height:40px;min-height:0;flex-basis:28px}
.grid-head .bingo-emblem .scorer-emblem>.award-icon img{width:28px;height:40px;max-width:28px;max-height:40px}
.bingo-board .bingo-emblem .scorer-emblem{width:40px;height:40px;gap:4px}
.bingo-board .bingo-emblem .scorer-emblem>.award-icon{width:18px;height:32px;flex-basis:18px}
.bingo-board .bingo-emblem .scorer-emblem>.award-icon img{width:18px;height:32px;max-width:18px;max-height:32px}
@media(max-width:650px){
 .grid-head .bingo-emblem .scorer-emblem{width:48px;gap:4px}
 .grid-head .bingo-emblem .scorer-emblem>.award-icon{width:22px;height:36px;flex-basis:22px}
 .grid-head .bingo-emblem .scorer-emblem>.award-icon img{width:22px;height:36px;max-width:22px;max-height:36px}
 .bingo-board .bingo-emblem .scorer-emblem{width:38px;gap:2px}
}

/* The compact Premier League lion fills its slot without crowding the text. */
.grid-head .bingo-emblem>.league-premier-league,.grid-head .bingo-emblem>.league-premier-league img{width:56px;height:64px;max-width:56px;max-height:64px;flex-basis:56px}
.bingo-board .bingo-emblem>.league-premier-league,.bingo-board .bingo-emblem>.league-premier-league img{width:40px;height:40px;max-width:40px;max-height:40px}
.quiz-theme-icon>.league-premier-league{width:56px;height:56px}
@media(max-width:650px){.grid-head .bingo-emblem>.league-premier-league,.grid-head .bingo-emblem>.league-premier-league img{width:44px;height:52px;max-width:44px;max-height:52px;flex-basis:44px}}

/* Use the official lion as a high-contrast mark on the dark game surfaces. */
.award-icon img[src="./assets/icons/premier-league-lion.svg"]{filter:brightness(0) invert(1)}

/* Fill the Super Lig slot by cropping only the source's empty side margins. */
.grid-head .bingo-emblem>.league-super-lig,.grid-head .bingo-emblem>.league-super-lig img{width:56px;height:64px;max-width:56px;max-height:64px;flex-basis:56px;object-fit:cover}
.bingo-board .bingo-emblem>.league-super-lig,.bingo-board .bingo-emblem>.league-super-lig img{width:40px;height:44px;max-width:40px;max-height:44px;object-fit:cover}
.quiz-theme-icon>.league-super-lig{width:56px;height:56px}
.award-icon.league-super-lig img{object-fit:cover;object-position:center}
@media(max-width:650px){.grid-head .bingo-emblem>.league-super-lig,.grid-head .bingo-emblem>.league-super-lig img{width:44px;height:52px;max-width:44px;max-height:52px;flex-basis:44px;object-fit:cover}}
