:root{--bg:#f6f1e7;--ink:#2b2a26;--mute:#6f6a5f;--sea:#cfe3ea;--land:#e9dfc9;--coast:#b9ab8c;--acc:#1f6f78;--ok:#2e7d32;--ko:#c62828;--card:#fffdf8;--line:#e2d9c6}
*{box-sizing:border-box}
body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--ink)}
header{padding:12px 14px 6px}
h1{font-size:19px;margin:0}
.sub{color:var(--mute);font-size:13px;margin-top:2px}
nav.tabs{display:flex;gap:6px;padding:6px 14px;overflow-x:auto}
.tabs button,.zooms button,.chip{border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:999px;padding:7px 12px;font-size:14px;white-space:nowrap;cursor:pointer}
.tabs button.on{background:var(--acc);color:#fff;border-color:var(--acc)}
.zooms{display:flex;gap:5px;padding:4px 14px 6px;overflow-x:auto}
.zooms button{font-size:12.5px;padding:5px 10px}
.zooms button.on{border-color:var(--acc);color:var(--acc);font-weight:600}
#mapwrap{margin:0 10px;border-radius:12px;overflow:hidden;border:1px solid var(--line);background:var(--sea);touch-action:manipulation;cursor:pointer}
#map{display:block;width:100%;height:auto;aspect-ratio:1000/620}
.land{fill:var(--land);stroke:var(--coast);stroke-width:.6;vector-effect:non-scaling-stroke}
.sphere{fill:var(--sea)}
.r-vis{fill:none;stroke-width:4.5;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke;opacity:.85}
.r.cust .r-vis{stroke-dasharray:6 4}
.r.sel .r-vis{stroke:var(--acc)!important;stroke-width:7;opacity:1}
.r.ok .r-vis{stroke:var(--ok)!important;stroke-width:7;opacity:1}
.r.ko .r-vis{stroke:var(--ko)!important;stroke-width:7;opacity:1}
.r.hl .r-vis{stroke:#e8a317!important;stroke-width:8;opacity:1}
.draft{fill:none;stroke:#d81b60;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.dot{fill:#d81b60;stroke:#fff;stroke-width:1.5;vector-effect:non-scaling-stroke}
.lbl{font-weight:700;fill:#2b2216;paint-order:stroke;stroke:#fffdf8;stroke-linejoin:round;pointer-events:none}
main{padding:10px 12px 40px}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin-bottom:10px}
.names{display:grid;grid-template-columns:auto 1fr;gap:4px 10px;font-size:15px;margin:8px 0}
.flag{font-size:12px;font-weight:700;color:#fff;border-radius:5px;padding:2px 6px;text-align:center;align-self:center}
.fr{background:#2d4ea2}.en{background:#a2302d}.nl{background:#d9741c}
.big{font-size:20px;font-weight:700}
.meta{font-size:13.5px;color:var(--mute);margin:4px 0}
.info{font-size:14.5px;line-height:1.45;margin-top:6px;white-space:pre-line}
.q{font-size:17px;font-weight:600;margin-bottom:4px}
.choices{display:grid;gap:8px;margin-top:10px}
.choices button{text-align:left;padding:11px 12px;border-radius:10px;border:1px solid var(--line);background:#fff;font-size:15.5px;cursor:pointer;color:var(--ink)}
.choices button.ok{background:#e3f2e4;border-color:var(--ok)}
.choices button.ko{background:#fbe5e5;border-color:var(--ko)}
.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.btn{background:var(--acc);color:#fff;border:0;border-radius:10px;padding:11px 16px;font-size:15px;font-weight:600;cursor:pointer}
.btn.sec{background:#fff;color:var(--acc);border:1px solid var(--acc)}
.btn.del{background:#fff;color:var(--ko);border:1px solid var(--ko)}
.btn:disabled{opacity:.45}
.score{font-size:13px;color:var(--mute)}
.fb{margin-top:10px;padding:10px 12px;border-radius:10px;font-size:14.5px;line-height:1.45}
.fb.ok{background:#e3f2e4}.fb.ko{background:#fbe5e5}.fb.inf{background:#e6f0f1}
.list{display:grid;gap:6px}
.li{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:9px 11px;background:var(--card);border:1px solid var(--line);border-radius:10px;cursor:pointer;font-size:14px}
.li small{color:var(--mute)}
.badge{font-size:11px;background:#fde9c8;color:#7a4b00;border-radius:6px;padding:1px 6px;margin-left:4px}
.bar{height:6px;background:var(--line);border-radius:6px;overflow:hidden;margin-top:6px}
.bar i{display:block;height:100%;background:var(--acc)}
.langsel{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}
.chip.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.hint{font-size:12.5px;color:var(--mute);margin-top:6px}
label{display:block;font-size:13px;font-weight:600;margin:10px 0 4px}
input,textarea{width:100%;font:inherit;font-size:16px;padding:9px 10px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--ink)}
textarea{min-height:70px}
.homel{font-size:14px;color:var(--acc);text-decoration:none;font-weight:600;cursor:pointer;display:inline-block;margin:4px 0}
header .langsel{margin:0}header .chip{padding:5px 10px;font-size:13px}
main{padding:10px 12px 40px;max-width:760px;margin:0 auto}header{max-width:760px;margin:0 auto}
h2{font-size:17px;margin:16px 0 4px}
main .tabs{padding:6px 0 6px}
.cc{display:flex;gap:12px;align-items:flex-start;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:13px 14px;margin-bottom:10px;cursor:pointer;color:inherit;text-decoration:none}
.cc.off{opacity:.55;cursor:default}
.cc b{font-size:16px}.cc small{display:block;color:var(--mute);font-size:13px;margin-top:3px}.cc .bs{color:#b07a00;font-weight:600;letter-spacing:2px}.cc .bs.soon{color:var(--mute);letter-spacing:0;font-style:italic}
.ci{font-size:26px;line-height:1}
.fig{margin-top:10px}.emap{width:100%;height:auto;display:block;border-radius:8px;border:1px solid var(--line)}
.ll{font-weight:700;fill:#2b2216;paint-order:stroke;stroke:#fffdf8;stroke-linejoin:round}
.info{white-space:normal}.info ul,.info ol{margin:6px 0;padding-left:20px}.info li{margin:4px 0}.info a{color:var(--acc)}
.fb .info{margin-top:6px}
.tags{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:6px}.tg{font-size:11.5px;border-radius:6px;padding:2px 7px;font-weight:600}
.tg.x{background:#e6ecf7;color:#2d4ea2}.tg.m{background:#e3f2e4;color:#256b2a}
.story{border-left:5px solid #e8a317}.verify{border-left:5px solid var(--acc)}
.dg{width:100%;height:auto;display:block}.dg text{font-size:15px;fill:#2b2a26;font-weight:600}
.lvt button{flex:1;text-align:center}
