:root{--mono:"Geist Mono",ui-monospace,"SF Mono",Menlo,Consolas,monospace;--sans:"Geist",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif}#app[data-theme=midnight]{--bg:#15110f;--text:#f4f0ec;--muted:#a39a92;--faint:#6f655d;--line:#2c2521;--accent:#e0242f;--ring:#3a2420;--grid:#4a3a36}#app[data-theme=graphite]{--bg:#1b1d20;--text:#eef0f2;--muted:#9aa0a8;--faint:#6b7178;--line:#2c3036;--accent:#4f9aa6;--ring:#283038;--grid:#3a434c}#app[data-theme=slate]{--bg:#222a38;--text:#eef2f8;--muted:#9aa6ba;--faint:#6b7790;--line:#313c4f;--accent:#d39a2e;--ring:#2f3a4d;--grid:#3c4a60}#app[data-theme=white]{--bg:#ffffff;--text:#1a1a18;--muted:#6f6d64;--faint:#9a978c;--line:#ececec;--accent:#c0397e;--ring:#eceaf0;--grid:#dcd9e2}#app[data-theme=paper]{--bg:#fafaf4;--text:#1a1a18;--muted:#6f6d64;--faint:#9a978c;--line:#ece9e0;--accent:#4e6a96;--ring:#ece7dc;--grid:#ddd7c9}*{box-sizing:border-box}[hidden]{display:none!important}html,body{height:100%;margin:0;overflow:hidden}body{background:var(--bg);color:var(--text);font-family:var(--sans);-webkit-font-smoothing:antialiased}#app{height:100%;overflow:hidden;position:relative;background:var(--bg);color:var(--text)}.cfg-btn{position:absolute;top:8px;right:10px;z-index:6;width:26px;height:26px;border-radius:7px;cursor:pointer;font-size:13px;line-height:1;color:var(--muted);background:var(--bg);border:1px solid var(--line);opacity:0;transition:opacity .15s,color .12s,border-color .12s}#app:hover .cfg-btn{opacity:.75}.cfg-btn:hover{opacity:1;color:var(--accent);border-color:var(--accent)}.viz{position:relative;height:100%;width:100%;overflow:hidden;padding:clamp(6px,1.8vmin,20px)}.canvas{width:100%;height:100%;display:block;cursor:pointer;user-select:none;-webkit-user-select:none}.canvas .ring{fill:none;stroke:var(--grid);stroke-opacity:.85;stroke-dasharray:1.5 5}.canvas .axis{stroke:var(--grid);stroke-opacity:.7;stroke-width:1}.canvas .qlab{fill:var(--label, var(--muted));font-family:var(--mono);letter-spacing:.08em;text-anchor:middle}.canvas .ylab{fill:var(--faint);font-family:var(--mono);text-anchor:middle}.canvas .ring,.canvas .axis,.canvas .qlab,.canvas .ylab{pointer-events:none}.canvas .dot{stroke:var(--bg);stroke-width:.6;transition:opacity .08s ease}.canvas .dot.dim{opacity:.16}.canvas .dot.hov{stroke:var(--text);stroke-width:1.2}#app[data-dots=soft] .canvas .dot,#app[data-dots=glow] .canvas .dot{stroke:none}#app[data-dots=glow] .canvas .dot{mix-blend-mode:screen}#app[data-dots=soft] .canvas .dot.hov,#app[data-dots=glow] .canvas .dot.hov{stroke:var(--text);stroke-width:1.2;mix-blend-mode:normal}.legend{position:absolute;left:clamp(8px,2.4vmin,26px);bottom:clamp(8px,2.4vmin,26px);z-index:3;pointer-events:none;max-width:42%;background:var(--bg);background:color-mix(in srgb,var(--bg) 82%,transparent);border:1px solid var(--line);border-radius:8px;padding:7px 9px;font-size:11px;line-height:1.5;color:var(--text);backdrop-filter:blur(2px)}.legend .lg-title{font-family:var(--mono);font-size:9.5px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.legend .lg-row{display:flex;align-items:center;gap:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.legend .lg-sw{width:11px;height:11px;border-radius:50%;flex:none}.legend .lg-more{color:var(--muted);margin-top:1px}.legend .lg-ramp{width:116px;height:9px;border-radius:5px}.legend .lg-scale{display:flex;justify-content:space-between;font-family:var(--mono);font-size:9.5px;color:var(--muted);margin-top:2px}#app.sm .legend,#app.xs .legend{display:none!important}.tip{position:absolute;z-index:4;pointer-events:none;background:var(--text);color:var(--bg);border-radius:6px;padding:5px 8px;font-family:var(--mono);font-size:10.5px;line-height:1.45;min-width:70px;box-shadow:0 6px 18px #00000059}.tip .tt-k{opacity:.7}.tip .tt-v{font-weight:600}#app.sm .canvas .ylab,#app.xs .canvas .ylab,#app.xs .canvas .qlab{display:none}.empty{height:100%;display:grid;place-items:center;padding:16px}.empty-card{text-align:center;max-width:340px;color:var(--muted)}.empty-mark{color:var(--accent);margin-bottom:10px;opacity:.9}.empty-card h1{font-family:"Instrument Serif",Georgia,serif;font-style:italic;font-weight:400;font-size:26px;color:var(--text);margin:0 0 6px}.empty-card p{font-size:12.5px;line-height:1.55;margin:0}.empty-card b{color:var(--text)}
