/*! Flageroo - World Flag Map Quiz v5.1.3 - (c) 2025 pmaklabs (Peter Mak). PolyForm Noncommercial 1.0.0 - see LICENSE.txt */
:root{--wfq-correct-color:#2ea043;--wfq-wrong-color:#e11d48;--wfq-correct-fill-opacity:0.50;--wfq-wrong-fill-opacity:0.45;--border:#23262a;--wfq-topbar-h:48px;--bg:#0a0a0a;--fg:#f5f5f5;--panel:#111418;--muted:#8b949e;--acc:#2ea043;--err:#e5534b;--card:#0f1318;color-scheme:light dark}*{box-sizing:border-box}#app,body,html{height:100%}body{margin:0;background:var(--bg);color:var(--fg);font:14px/1.4 system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif}#map,.topbar{right:0;left:0}.topbar{position:fixed;top:0;display:flex;align-items:center;justify-content:space-between;padding:10px;height:calc(var(--wfq-topbar-h) + env(safe-area-inset-top));padding-top:env(safe-area-inset-top);background:var(--panel);border-bottom:1px solid #23262a;z-index:999999}.brand{font-weight:700}.nav button{margin-left:6px}#map{position:absolute;top:calc(var(--wfq-topbar-h) + env(safe-area-inset-top));bottom:40px;background:#0a0a0a;z-index:0}.card,.footnote{position:fixed;z-index:10000}.footnote{left:0;right:0;bottom:0;padding:6px 10px;font-size:12px;color:var(--muted);background:rgba(0,0,0,.4);backdrop-filter:saturate(140%) blur(8px)}.card{right:12px;top:60px;width:320px;background:var(--card);border:1px solid #22272e;border-radius:12px;box-shadow:0 8px 24px rgba(0,0,0,.3);padding:10px;pointer-events:auto}.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.prompt{font-weight:600}.flags{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:8px 0}.flag-btn{background:#0e1116;border:1px solid #23262a;border-radius:10px;padding:6px;cursor:pointer}.flag-btn img{width:100%;height:auto;border-radius:6px}.flag-btn.correct{outline:3px solid var(--acc)}.flag-btn.wrong{outline:3px solid var(--err)}.meta{font-size:12px;color:var(--muted)}.feedback{margin-top:6px;min-height:20px}.card-actions{display:flex;gap:8px;justify-content:flex-end;align-items:center}.sheet{position:fixed;left:0;right:0;bottom:40px;background:var(--card);border-top:1px solid #23262a;border-radius:16px 16px 0 0;box-shadow:0-8px 24px rgba(0,0,0,.25);transition:transform .2s ease;z-index:10000;pointer-events:auto}.sheet.collapsed{transform:translateY(calc(100% - 28px))}.grabber{width:44px;height:5px;border-radius:4px;background:#565c64;margin:8px auto;cursor:ns-resize;touch-action:none}.sheet-content{padding:10px}.sheet .flags{grid-template-columns:1fr 1fr}.toast,button{border-radius:8px}.toast{position:fixed;right:12px;bottom:60px;background:#20242a;border:1px solid #2a2f36;padding:8px 10px;z-index:10000}button{border:1px solid #30363d;background:#151a20;color:var(--fg);padding:6px 10px;cursor:pointer}button.primary{background:#1f6feb;border-color:#1f6feb}button.ghost{background:0 0;border-color:#2a2f36;color:#c9d1d9}.sheet .sheet-close,button.icon-btn{background:0 0;border:0;color:#c9d1d9;font-size:16px;line-height:1}@media (max-width:768px){#quizCard{display:none}.sheet{display:block}}@media (min-width:769px){.sheet{display:none}#quizCard{display:block}}@media (prefers-reduced-motion:reduce){.sheet{transition:none}}.maplibregl-popup-content{background:var(--card);color:var(--fg);border:1px solid #23262a;box-shadow:0 8px 24px rgba(0,0,0,.35)}.maplibregl-popup-tip{border-top-color:var(--card)!important;border-bottom-color:var(--card)!important}#map .maplibregl-canvas,#map .maplibregl-control-container,#map .maplibregl-popup{z-index:0!important}[hidden]{display:none!important}.chip,.debug{position:fixed;top:54px;left:12px;background:#1e232a;border:1px solid #2a2f36;color:#c9d1d9;padding:3px 6px;border-radius:6px;font-size:12px;opacity:.8;z-index:10000}.chip{top:86px}.sheet .sheet-close{position:absolute;right:8px;top:6px;padding:6px;cursor:pointer}.flag-btn:focus,.sheet .sheet-close:focus{outline:2px solid #1f6feb;outline-offset:2px}dialog{border:1px solid #23262a;background:var(--card);color:var(--fg);border-radius:12px;padding:16px}dialog::backdrop{background:rgba(0,0,0,.4);backdrop-filter:blur(2px)}#aboutModal a,.footnote a{color:var(--fg);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px;text-decoration-color:rgba(201,209,217,.5);transition:color .15s ease,text-decoration-color .15s ease,box-shadow .15s ease}#aboutModal a:hover,.footnote a:hover{text-decoration-color:currentColor}#aboutModal a:focus-visible,.footnote a:focus-visible{outline:2px solid #1f6feb;outline-offset:2px;border-radius:4px}.footnote #installBtn{font:inherit;color:var(--fg);background:0 0;border:1px solid var(--border);padding:4px 10px;border-radius:8px;cursor:pointer;margin-left:8px}.footnote #installBtn:hover{border-color:#1f6feb}.footnote #installBtn:focus-visible{outline:2px solid #1f6feb;outline-offset:2px}svg path.completed{fill:#2a4a5f!important}svg path.active{stroke:#ffd166!important;stroke-width:2!important}@media (max-width:768px){#bottomSheet{padding-bottom:env(safe-area-inset-bottom)}#bottomSheet .body{max-height:calc(100% - 56px);overflow:auto;-webkit-overflow-scrolling:touch}footer{display:none}#bottomSheet,#bottomSheet.sheet{height:var(--sheet-h, 40vh);max-height:60vh}#bottomSheet.sheet{bottom:0;display:flex;flex-direction:column}#bottomSheet .sheet-content{-webkit-overflow-scrolling:touch;padding:10px;flex:1;overflow:auto}#bottomSheet .sheet-actions{flex-shrink:0;padding:8px 10px 12px}#bottomSheet .flags{grid-template-columns:1fr 1fr;gap:8px}#bottomSheet .flag-btn{padding:4px;min-height:44px;display:flex;align-items:center;justify-content:center}#bottomSheet .flag-btn img{max-width:200px;max-height:100px;height:auto;width:auto}#bottomSheet .grabber{z-index:2;pointer-events:auto}#bottomSheet .grabber::before{content:"";display:block;margin:6px auto}#bottomSheet .sheet-actions{padding-bottom:max(12px,env(safe-area-inset-bottom))}#bottomSheet .grabber{position:relative;display:flex;justify-content:center;align-items:center;height:8px;touch-action:manipulation;user-select:none}#bottomSheet .grabber-hit{position:absolute;inset:-10px 0-10px 0}}:root{--wfq-pending-fill:rgba(139, 148, 158, 0.16);--wfq-completed-fill:rgba( 46, 160,  67, 0.50);--wfq-active-stroke:#ffd166;--wfq-stroke-width:1.5}@media (prefers-color-scheme:light){:root{--wfq-pending-fill:rgba(120, 130, 140, 0.22);--wfq-completed-fill:rgba( 46, 160,  67, 0.40);--wfq-active-stroke:#2ea043}}svg#world .country{fill:var(--wfq-pending-fill);stroke:rgba(255,255,255,.08);stroke-width:.5}svg#world .country.active{stroke:var(--wfq-active-stroke);stroke-width:var(--wfq-stroke-width);filter:drop-shadow(0 0 .75px rgba(0,0,0,.6))}.foot-link{text-decoration:none;opacity:.9}.foot-link:hover{opacity:1}.topbar .nav{display:none}#appMenu button,.icon-btn{background:0 0;cursor:pointer}.icon-btn{border:1px solid var(--border);border-radius:10px;width:36px;height:36px;display:flex;align-items:center;justify-content:center}.icon-btn:hover{background:rgba(255,255,255,.04)}.icon-hamburger,.icon-hamburger::after,.icon-hamburger::before{content:"";display:block;width:18px;height:2px;background:var(--fg);position:relative;border-radius:2px}.icon-hamburger::after,.icon-hamburger::before{position:absolute;top:-6px;left:0}.icon-hamburger::after{top:6px}#appMenu.menu-panel{position:fixed;right:10px;top:calc(var(--wfq-topbar-h) + env(safe-area-inset-top) + 6px);background:var(--panel);border:1px solid var(--border);border-radius:12px;box-shadow:0 12px 30px rgba(0,0,0,.35);padding:6px;min-width:200px;z-index:100000}#appMenu[hidden]{display:none}#appMenu .menu-divider{border:0;border-top:1px solid #23262a;margin:6px 0}#appMenu button{display:block;width:100%;text-align:left;padding:10px 12px;border:0;color:var(--fg);border-radius:8px}#appMenu button:hover{background:rgba(255,255,255,.06)}#welcomeModal{max-width:520px;width:92vw;border:0;border-radius:12px;padding:0}#welcomeModal::backdrop{background:rgba(0,0,0,.35)}#welcomeModal .welcome-content{padding:16px 18px 14px}#welcomeModal h3{margin:0 0 8px;font-size:1.25rem}#welcomeModal ul{margin:8px 0 0 20px}#welcomeModal .welcome-noshow{display:flex;gap:8px;align-items:center;margin-top:8px}#welcomeModal .welcome-actions{margin-top:10px;display:flex;justify-content:flex-end}.flag-btn img,dialog[open]{display:block}svg#world .country.completed{fill:var(--wfq-correct-color);fill-opacity:var(--wfq-correct-fill-opacity)}svg#world .country.wrong{fill:var(--wfq-wrong-color);fill-opacity:var(--wfq-wrong-fill-opacity)}.flag-btn{display:flex;flex-direction:column;align-items:center}.flag-caption{order:2;font-size:.8rem;line-height:1.2;text-align:center;margin-top:.4rem;--caption-lines:2;min-height:calc(1.2em*var(--caption-lines));opacity:0;visibility:hidden;transform:translateY(4px);transition:opacity .18s ease,transform .18s ease}.flag-caption.revealed{opacity:1;visibility:visible;transform:translateY(0)}.flag-btn img{order:1}.mode-badge{margin-left:8px;font-size:12px;padding:2px 6px;border:1px solid #23262a;border-radius:999px;background:#111418;color:#8b949e}.country.disabled{opacity:.25;pointer-events:none}.country.enabled{opacity:1}#modeForm fieldset{display:flex;flex-wrap:wrap;gap:.5rem 1rem;margin-bottom:12px}#modeForm fieldset>label{display:inline-flex;align-items:center;gap:.5rem;white-space:nowrap;padding:.35rem .5rem;border-radius:.5rem}#modeForm fieldset>label:has(input:focus-visible){outline:2px solid currentColor;outline-offset:2px}.run-progress-wrap{display:flex;align-items:center;gap:.5rem;margin-left:12px;flex:1;max-width:360px}.run-progress{height:6px;flex:1;border-radius:999px;background:var(--surface-3,#2b2f36);overflow:hidden}.run-progress .seg{height:100%;float:left;transition:width .25s ease}.run-progress .seg.correct{background:#22c55e}.run-progress .seg.wrong{background:#ef4444}.run-progress-label{font-size:.75rem;opacity:.8;min-width:3.5rem;text-align:right}@media (max-width:240px){.run-progress-label{display:none}}@media (max-width:768px){.flag-btn{position:relative;overflow:hidden}.flag-caption{position:absolute;left:0;right:0;bottom:0;padding:6px 8px;font-size:.8rem;line-height:1.2;color:#fff;background:linear-gradient(to top,rgba(0,0,0,.6),transparent);opacity:0;visibility:hidden;transform:translateY(4px);transition:opacity .18s ease,transform .18s ease;pointer-events:none;min-height:0}.flag-caption.revealed{opacity:1;visibility:visible;transform:none}#mHintBtn{width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;padding:0;border-radius:10px;font-size:0}#mHintBtn::before{content:"💡";font-size:18px;line-height:1}}#modeModal .card-actions{margin-top:12px}.sum-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:8px 0 12px}.sum-card{background:var(--card);color:var(--fg);border:1px solid #23262a;border-radius:12px;padding:10px 12px;box-shadow:0 4px 12px rgba(0,0,0,.15)}.sum-label{font-size:12px;opacity:.8;margin-bottom:4px}.sum-value{font-size:20px;font-weight:700;line-height:1.2;font-variant-numeric:tabular-nums}@media (max-width:380px){.sum-value{font-size:18px}}.menu-meta{display:flex;align-items:center;justify-content:space-between;padding:8px;font-size:12px;opacity:.9}.edition-badge{padding:2px 8px;border:1px solid #23262a;border-radius:999px;font-size:11px;line-height:1;white-space:nowrap}.version-badge{font-variant-numeric:tabular-nums;font-weight:600;opacity:.85}@media (max-width:480px){.edition-badge.header{display:none}}.btn--icon{display:inline-flex;align-items:center;gap:8px;padding:6px 10px;min-height:44px;line-height:1;border-radius:8px}.btn--icon .btn__icon{display:inline-flex;width:20px;height:20px}.btn--icon .btn__icon svg{width:20px;height:20px;display:block}.btn--icon .btn__label{font-weight:600}@media (max-width:480px){.btn--icon{padding:8px;min-width:44px;justify-content:center}.btn--icon .btn__label{display:none}}#hintBtn.btn--icon>i,#hintBtn.btn--icon>img,#hintBtn.btn--icon>svg,#mHintBtn.btn--icon>i,#mHintBtn.btn--icon>img,#mHintBtn.btn--icon>svg,.btn--icon .btn__label{display:none!important}.btn__badge{display:inline-flex;min-width:18px;height:18px;align-items:center;justify-content:center;font-size:12px;font-weight:700;padding:0 5px;border-radius:9px;background:rgba(255,255,255,.2);margin-left:6px}#hintBtn.btn--icon::before,#mHintBtn.btn--icon::before{content:none!important;background:0 0!important}.btn--icon>:not(.btn__icon):not(.btn__label):not(.btn__badge){display:none!important}