* { margin: 0; padding: 0; box-sizing: border-box; }
        body { font-family: system-ui, -apple-system, sans-serif; background: linear-gradient(135deg, #1e3a5a, #2d5986, #1e3a5a); min-height: 100vh; color: #e2e8f0; }
        .game-header { position: fixed; top: 0; left: 0; right: 0; z-index: 1000; background: rgba(15,23,42,0.95); backdrop-filter: blur(10px); padding: 8px 16px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid rgba(99,102,241,0.2); }
        .header-left { display: flex; align-items: center; gap: 10px; }
        .btn-quit { padding: 6px 12px; border-radius: 8px; border: 1px solid rgba(239,68,68,0.4); background: rgba(239,68,68,0.1); color: #f87171; font-size: 0.8rem; font-weight: 600; cursor: pointer; text-decoration: none; }
        .game-title { font-size: 1rem; font-weight: 700; color: #f8fafc; }
        .header-right { display: flex; align-items: center; gap: 15px; font-size: 0.85rem; }
        .score-display { color: #fbbf24; font-weight: 700; }
        .progress-display { color: #a5b4fc; }
        .game-container { padding-top: var(--game-header-space, 52px); max-width: 1100px; margin: 0 auto; padding-left: 12px; padding-right: 12px; }
        .controls { display: flex; gap: 8px; padding: 12px 0; flex-wrap: wrap; align-items: center; justify-content: center; }
        .chip { padding: 6px 14px; border-radius: 20px; border: 1px solid rgba(99,102,241,0.3); background: rgba(99,102,241,0.1); color: #a5b4fc; font-size: 0.82rem; font-weight: 600; cursor: pointer; transition: all 0.2s; }
        .chip.active { background: #6366f1; color: #fff; border-color: #6366f1; }
        .separator { width: 1px; height: 24px; background: rgba(148,163,184,0.3); margin: 0 4px; }
        .question-bar { background: rgba(255,255,255,0.06); border: 1px solid rgba(99,102,241,0.15); border-radius: 12px; padding: 12px 18px; margin-bottom: 10px; text-align: center; }
        .question-text { font-size: 1.15rem; font-weight: 700; color: #f8fafc; }
        .question-hint { font-size: 0.85rem; color: #94a3b8; margin-top: 4px; font-style: italic; }
        #map { width: 100%; height: 520px; border-radius: 14px; border: 2px solid rgba(99,102,241,0.2); z-index: 1; background: #cfe3f2; /* mer (fond vectoriel self-hosté, plus de tuiles CARTO) */ }
        @media screen and (max-width: 700px) { #map { height: 380px; } }
        .feedback-overlay { position: fixed; top: 60px; left: 50%; transform: translateX(-50%); z-index: 2000; max-width: min(92vw, 560px); max-height: min(70vh, 420px); overflow: auto; padding: 10px 24px; border-radius: 12px; font-weight: 700; font-size: 1rem; display: none; text-align: center; }
        .map-discussion { margin-top: 10px; padding-top: 8px; border-top: 1px solid rgba(255,255,255,.35); text-align: left; font-size: .88rem; line-height: 1.45; }
        .map-discussion summary { min-height: 44px; display: flex; align-items: center; cursor: pointer; }
        .map-discussion summary:focus-visible { outline: 3px solid #facc15; outline-offset: 3px; border-radius: 4px; }
        .map-discussion p { margin: 4px 0 0; font-weight: 500; }
        .feedback-overlay.perfect { background: #065f46; color: #6ee7b7; border: 1px solid #10b981; }
        .feedback-overlay.good { background: #1e3a5f; color: #93c5fd; border: 1px solid #3b82f6; }
        .feedback-overlay.miss { background: #7f1d1d; color: #fca5a5; border: 1px solid #ef4444; }
        .results-screen { display: none; text-align: center; padding: 2rem 1rem; }
        .results-screen.active { display: block; }
        .results-score { font-size: 3rem; font-weight: 900; color: #fbbf24; }
        .results-detail { color: #94a3b8; margin: 0.5rem 0 1.5rem; }
        .results-stars { font-size: 2.5rem; margin-bottom: 1rem; }
        .results-actions { display: flex; gap: 10px; justify-content: center; }
        .results-actions a, .results-actions button { padding: 10px 20px; border-radius: 10px; font-weight: 700; font-size: 0.95rem; text-decoration: none; border: none; cursor: pointer; }
        .btn-primary { background: #6366f1; color: #fff; }
        .btn-secondary { background: rgba(255,255,255,0.1); color: #cbd5e1; border: 1px solid rgba(148,163,184,0.3); }
        .correct-marker { background: none; border: none; }
