/* Scoped additions preserve the existing site and game designs. */
#profileClassInput,.geo-level-panel select{width:100%;min-height:48px;border:2px solid #8dc9d7;border-radius:14px;padding:10px 12px;font:inherit;background:#fff;color:#19364f}
#profileClassHelp{line-height:1.5}
.geo-hub{display:block!important}
.geo-level-panel{border:1px solid #abd1d8;border-radius:20px;padding:18px;background:#eef9f8;color:#19364f;margin-bottom:18px}
.geo-level-panel label{display:block;font-weight:800;margin-bottom:8px}
.geo-level-panel p{font-size:14px;line-height:1.5;margin:10px 0}
.geo-level-panel h3{margin:14px 0 4px}
.geo-choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.geo-choices .game-choice{min-width:0}
/* Fill the grid stage even when the question has only a few words. */
.geo-game,.geo-atlas,.geo-placement{width:100%;min-width:0;max-width:100%}
.geo-game{margin:0 auto;text-align:center;color:inherit}
.geo-game h3{line-height:1.45;font-size:22px;margin:12px 0}
.geo-map-caption{font-size:13px;line-height:1.4;margin:12px 0}
.geo-map{position:relative;width:100%;aspect-ratio:600/330;border:2px solid #759fa2;border-radius:16px;overflow:hidden;background:#b3dcec;margin:16px auto}
.geo-map>svg,.geo-map>img{display:block;width:100%;height:100%}
.geo-france{aspect-ratio:1;max-width:600px}
.geo-marker{position:absolute;transform:translate(-50%,-50%);min-width:40px;min-height:40px;padding:4px;border:2px solid #26475b;border-radius:50%;background:#fff;color:#173f58;font:inherit;font-weight:900;cursor:pointer;box-shadow:0 2px 4px #16364b33}
.geo-school .geo-marker{min-width:64px;border-radius:12px;background:#fffde9;border-color:#547a52}
.geo-school .geo-marker span{display:block;font-size:30px;line-height:1.1}
.geo-school .geo-marker small{display:block;font-size:11px}
.geo-marker:disabled{opacity:.8;cursor:default}
.geo-answers{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:20px 0}
.geo-answer{padding:18px 12px;min-height:70px;border-radius:16px;border:2px solid #87bac4;background:linear-gradient(#fff,#e5f4f6);color:#19364f;font:inherit;font-weight:800;cursor:pointer;overflow-wrap:anywhere}
.geo-answer:disabled{opacity:.75;cursor:default}
.geo-right{background:#c7f0d0!important;color:#174629!important;border-color:#19864a!important;opacity:1!important;outline:3px solid #19864a;outline-offset:2px}
.geo-feedback{min-height:45px;padding:10px;line-height:1.5;font-weight:700}
.geo-actions{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin:12px 0}
.geo-actions [hidden]{display:none!important}
.geo-game button:focus-visible,.geo-hub button:focus-visible{outline:3px solid #f9a52d;outline-offset:3px}
.geo-early .geo-answer{font-size:23px;min-height:90px}
.geo-parent-levels>div{display:flex;gap:16px;padding:10px 0;border-bottom:1px solid #b7cdd666;align-items:start}
.geo-parent-levels b{min-width:35px}.geo-parent-levels span{font-size:13px;line-height:1.6}
@media(max-width:600px){.geo-choices{grid-template-columns:1fr}.geo-level-panel{padding:12px}.geo-game h3{font-size:19px}.geo-answer{padding:13px 8px;font-size:15px}.geo-map{border-radius:12px}.geo-marker{min-width:32px;min-height:32px;font-size:12px;padding:2px}.geo-school .geo-marker{min-width:48px;min-height:48px;padding:2px}.geo-school .geo-marker span{font-size:24px}.geo-school .geo-marker small{font-size:9px}.geo-early .geo-answer{font-size:20px}.geo-actions button{min-height:48px}}

.geo-mobile-nav{display:none}
@media(max-width:600px){
 body{padding-bottom:calc(76px + env(safe-area-inset-bottom,0px))}
 .geo-mobile-nav{position:fixed;display:flex;left:0;right:0;bottom:0;z-index:30;background:var(--nav,#173650);border-top:1px solid #ffffff30;padding-bottom:env(safe-area-inset-bottom,0px);height:calc(64px + env(safe-area-inset-bottom,0px))}
 .geo-mobile-nav button{flex:1;min-width:0;border:0;background:none;color:#d8f4ff;font-size:23px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:3px;cursor:pointer}
 .geo-mobile-nav small{font-size:11px}
}

.geo-illustration{display:block;width:min(100%,440px);height:auto;margin:18px auto}.geo-big-symbol{font-size:96px;line-height:1.3;margin:18px auto}
@media(max-width:360px){.geo-france .geo-marker{min-width:28px;min-height:28px;font-size:11px}}

.geo-course{margin:4px 0 12px}
.geo-course h3{font-size:19px;margin:0 0 6px;line-height:1.4}
.game-modal-card .geo-course p{font-size:14px;line-height:1.5;margin:0;color:#c6d9ef}
.geo-other-classes{margin:0 0 18px}
.geo-other-classes summary{display:list-item;width:fit-content;max-width:100%;font-size:14px;font-weight:700;color:#a7e7f2;cursor:pointer;padding:9px 0;min-height:40px}
.geo-other-classes summary:focus-visible{outline:3px solid #f9a52d;outline-offset:3px;border-radius:5px}
.geo-other-classes .geo-level-panel{margin:8px 0 0;padding:14px}
.game-modal-card .geo-level-panel p{color:#294a60}
.geo-atlas-map{aspect-ratio:auto;padding:16px;overflow:hidden}
.geo-world-sheet{position:relative;aspect-ratio:600/330}
.geo-world-sheet>img{display:block;width:100%;height:100%}
.geo-world-sheet .geo-marker{min-width:30px;min-height:30px}
.geo-world-sheet .geo-marker small{position:absolute;top:100%;left:50%;transform:translateX(-50%);font-size:10px;line-height:1.2;background:#fffef2;color:#19364f;padding:2px 4px;border-radius:4px;white-space:nowrap}
.geo-atlas-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}
.geo-atlas-tabs button{padding:10px 14px;border:2px solid #6fbbce;border-radius:12px;background:#173d64;color:#fff;font:inherit;cursor:pointer;min-height:44px}
.geo-atlas-tabs button[aria-pressed="true"]{background:#e4f7f5;color:#19364f}
#geoAtlasControls label{display:block;font-weight:700;margin:10px 0 6px}
#geoCountry{width:100%;border:2px solid #8dc9d7;border-radius:12px;padding:10px;background:#fff;color:#19364f;font:inherit;min-height:48px}
.geo-info-panel{background:#e8f6f5;color:#19364f;border-radius:16px;padding:15px;margin:14px 0}
.geo-info-panel h3{margin:0 0 8px}.game-modal-card .geo-info-panel p{color:#294a60;line-height:1.5}
.geo-info-panel small{display:block;margin-top:10px}
.geo-case-tray{display:flex;flex-wrap:wrap;gap:9px;margin:16px 0}
.geo-place-card{flex:1 1 130px;max-width:100%;min-height:60px;border:2px solid #8dc9d7;background:#f3fbf9;color:#19364f;padding:12px;border-radius:13px;font:inherit;font-weight:800;cursor:grab;overflow-wrap:anywhere}
.geo-place-card.selected{outline:3px solid #ffb24c;outline-offset:2px;background:#fff0c7}
.geo-place-card.geo-placed{background:#c7f0d0;color:#174629;border-color:#19864a;cursor:default}
.geo-drop-target.geo-filled{background:#c7f0d0;border-color:#19864a;color:#174629;opacity:1}
.geo-atlas button:focus-visible,.geo-placement button:focus-visible{outline:3px solid #f9a52d;outline-offset:3px}
@media(max-width:600px){.geo-world-sheet .geo-marker{min-width:28px;min-height:28px;font-size:11px}.geo-world-sheet .geo-marker small{font-size:8px}.geo-atlas-map{padding:15px}.geo-case-tray{gap:8px}.geo-place-card{flex-basis:110px;font-size:14px;padding:10px}.geo-atlas .geo-map-caption{font-size:11px}}
