:root{--bg:#f7f5f0;--panel:#fff;--text:#1f2330;--muted:#6b7080;--border:#d8d4ca;--zone:#e6e1d3;--zone-hover:#d4cdb8;--zone-stroke:#fff;--selected:#3d6fb6;--highlighted:#e0a030;--correct:#3c9a5f;--wrong:#c94a3f;--point:#1f2330;color:var(--text);background:var(--bg);font-family:system-ui,-apple-system,Segoe UI,sans-serif}*{box-sizing:border-box}body{margin:0}button{font:inherit;cursor:pointer}.france-map{position:relative}.france-map svg{touch-action:none;width:100%;height:auto;max-height:calc(100vh - 140px);display:block}.zone{fill:var(--zone);stroke:var(--zone-stroke);stroke-width:1px;vector-effect:non-scaling-stroke;cursor:pointer}.zone:hover{fill:var(--zone-hover)}.zone--selected,.zone--selected:hover{fill:var(--selected)}.zone--highlighted,.zone--highlighted:hover{fill:var(--highlighted)}.zone--correct,.zone--correct:hover{fill:var(--correct)}.zone--wrong,.zone--wrong:hover{fill:var(--wrong)}.zone-label{text-anchor:middle;dominant-baseline:middle;pointer-events:none;fill:var(--text);paint-order:stroke;stroke:#fff;stroke-width:3px;vector-effect:non-scaling-stroke;font-weight:600}.point{fill:var(--point);stroke:#fff;stroke-width:1px;vector-effect:non-scaling-stroke;cursor:pointer}.point--selected{fill:var(--selected)}.map-controls{gap:6px;display:flex;position:absolute;top:8px;right:8px}.map-controls button{background:var(--panel);border:1px solid var(--border);border-radius:6px;padding:4px 10px}.layout{grid-template-columns:minmax(0,1fr) 340px;gap:16px;padding:16px;display:grid}.layout-map{min-width:0}.layout-panel{background:var(--panel);border:1px solid var(--border);border-radius:10px;align-self:start;padding:16px}@media (width<=800px){.layout{grid-template-columns:1fr}.france-map svg{max-height:55vh}}.toolbar{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:8px;display:flex}.segmented{border:1px solid var(--border);border-radius:8px;display:inline-flex;overflow:hidden}.segmented button{background:var(--panel);border:0;padding:6px 12px}.segmented button[aria-pressed=true]{background:var(--selected);color:#fff}.hint,.note{color:var(--muted)}.info h2{margin-top:0}.info dl{grid-template-columns:max-content 1fr;gap:6px 12px;display:grid}.info dt{color:var(--muted)}.info dd{margin:0}.info ul{padding-left:18px}.link{color:var(--selected);background:0 0;border:0;padding:0;text-decoration:underline}.search input{border:1px solid var(--border);border-radius:6px;width:100%;padding:8px}.search-results{border:1px solid var(--border);border-radius:6px;margin:4px 0 12px;padding:0;list-style:none}.search-results button{text-align:left;background:0 0;border:0;width:100%;padding:6px 8px}.search-results button:hover{background:var(--bg)}.search-empty{color:var(--muted)}.layout-single{max-width:480px;margin:24px auto;padding:0 16px}.quiz-setup{background:var(--panel);border:1px solid var(--border);border-radius:10px;gap:12px;padding:16px;display:grid}.quiz-setup fieldset{border:1px solid var(--border);border-radius:8px;flex-wrap:wrap;gap:12px;display:flex}.quiz-setup label{align-items:center;gap:6px;display:inline-flex}.primary{background:var(--selected);color:#fff;border:0;border-radius:6px;padding:8px 16px}.actions{gap:8px;margin-top:16px;display:flex}.actions button:not(.primary){background:var(--panel);border:1px solid var(--border);border-radius:6px;padding:8px 16px}.quiz-progress{color:var(--muted);margin:0 0 8px}.quiz-prompt{margin:0 0 12px}.choices{gap:8px;padding:0;list-style:none;display:grid}.choice{text-align:left;border:1px solid var(--border);background:var(--panel);border-radius:6px;width:100%;padding:8px 12px}.choice:disabled{cursor:default;color:var(--text)}.choice--correct{background:var(--correct);border-color:var(--correct);color:#fff!important}.choice--wrong{background:var(--wrong);border-color:var(--wrong);color:#fff!important}.text-answer{gap:8px;display:flex}.text-answer input{border:1px solid var(--border);border-radius:6px;flex:1;padding:8px;font-size:1.1em}.feedback{font-weight:600}.feedback--correct{color:var(--correct)}.feedback--wrong{color:var(--wrong)}.mistakes{gap:6px;padding-left:18px;display:grid}.mistakes .is-active{font-weight:700}.app-header{background:var(--panel);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:16px;padding:12px 16px;display:flex}.app-header h1{margin:0;font-size:1.4rem}
