:root{--bg:#0b0f14;--panel:#0f1620;--line:#23303d;--text:#e6edf5;--muted:#8fa1b3;--accent:#6ea8fe}
*{box-sizing:border-box}html,body{height:100%}body{margin:0;background:var(--bg);color:var(--text);font:14px/1.4 system-ui,-apple-system,Segoe UI,sans-serif;overflow:hidden}
.map-head{height:56px;display:flex;align-items:center;gap:12px;padding:0 16px;background:#0d141d;border-bottom:1px solid var(--line)}.map-brand{color:var(--accent);font-weight:800;text-decoration:none}
.map-main{position:fixed;inset:56px 0 50px 0;overflow:hidden;touch-action:none}#map-canvas{width:100%;height:100%;display:block;cursor:grab;background:radial-gradient(circle at 50% 45%,#0f1a26 0,#0b0f14 70%)}
.map-tools{position:absolute;right:10px;top:10px;display:flex;flex-direction:column;gap:6px}.map-tools button{width:38px;height:38px;border-radius:10px;border:1px solid var(--line);background:#0d1620;color:var(--text);font-size:16px;cursor:pointer}
.map-legend{position:absolute;left:10px;bottom:10px;color:var(--muted);font-size:10px;background:rgba(10,16,23,.75);border:1px solid var(--line);border-radius:8px;padding:5px 8px}
.map-sheet{position:absolute;left:0;right:0;bottom:0;max-height:52%;overflow:auto;background:#0d141d;border-top:1px solid var(--line);padding:14px 16px 18px;z-index:5;border-radius:16px 16px 0 0;box-shadow:0 -10px 30px rgba(0,0,0,.35)}
.map-sheet h2{font-size:17px;margin:0 40px 4px 0}.map-sheet p{color:var(--muted);font-size:12px;margin:4px 0}.map-close{position:absolute;right:10px;top:8px;background:transparent;border:0;color:var(--muted);font-size:24px;cursor:pointer}
#m-math{background:#0a1118;border:1px solid var(--line);border-radius:9px;padding:10px;margin:8px 0;overflow:auto}
#m-neighbors{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}#m-neighbors button{background:#162231;border:1px solid var(--line);color:var(--text);border-radius:999px;padding:5px 9px;font-size:11px;cursor:pointer}
@media(min-width:760px){.map-main{bottom:0}.map-sheet{left:auto;right:16px;bottom:16px;width:360px;border:1px solid var(--line);border-radius:14px;max-height:70%}.map-legend{bottom:14px}}

html[data-theme=light] body{background:#f4f7fb;color:#111827}html[data-theme=light] .map-head{background:#fff;border-color:#d6dee8}html[data-theme=light] #map-canvas{background:radial-gradient(circle at 50% 45%,#e8eef7 0,#f7f9fc 70%)}html[data-theme=light] .map-sheet{background:#fff;border-color:#d6dee8}html[data-theme=light] .map-tools button{background:#fff;color:#111827;border-color:#cbd5e1}html[data-theme=light] .app-nav{background:#fff;border-color:#d6dee8}html[data-theme=light] .app-nav a{color:#5b6b7c}

.mindmap{position:fixed;inset:56px 0 50px 0;z-index:30;background:#0b0f14;overflow:auto;padding:14px 16px 28px}
html[data-theme=light] .mindmap{background:#f4f7fb;color:#111827}
.mm-head{display:flex;gap:12px;align-items:flex-start;margin-bottom:14px}.mm-head button{background:#162231;border:1px solid var(--line);color:var(--text);border-radius:8px;padding:7px 10px;font-size:12px;cursor:pointer}.mm-head h2{margin:0;font-size:20px}.mm-head span{font-size:11px;color:var(--muted)}
.mm-center{border:2px solid var(--accent);background:#0f1b29;border-radius:14px;padding:16px;margin:0 auto 18px;max-width:720px;text-align:center}.mm-center .katex{font-size:1.15em}.mm-center p{color:var(--muted);font-size:12px;text-align:left;margin:10px 0 0}
.mm-branches{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;max-width:1100px;margin:0 auto}.mm-col{background:#0f1620;border:1px solid var(--line);border-radius:12px;padding:10px}.mm-col h3{font-size:10px;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);margin:0 0 8px}.mm-node{display:block;width:100%;text-align:left;background:#101c2a;border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:8px;padding:8px 9px;margin-bottom:6px;color:var(--text);font-size:12px;cursor:pointer}.mm-node small{display:block;color:var(--muted);font-size:10px;margin-top:2px}.mm-node:hover{background:#152538}
html[data-theme=light] .mm-col{background:#fff}html[data-theme=light] .mm-node{background:#f8fafc;color:#111827}html[data-theme=light] .mm-center{background:#fff;color:#111827}
@media(max-width:760px){.mindmap{inset:56px 0 50px 0;padding:12px}.mm-branches{grid-template-columns:1fr}.mm-center{max-width:100%}.mm-head h2{font-size:17px}}
