:root{--bg:#ffffff;--text:#1a1a18;--muted:#6f6d64;--faint:#9a978c;--line:#e7eaee;--accent:#4e6a96;--accent-dim:#c2c6ce;--mono:"Geist Mono",ui-monospace,"SF Mono",Menlo,Consolas,monospace;--sans:"Geist",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif}*{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}.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(8px,2.4vmin,28px)}.canvas{width:100%;height:100%;display:block;cursor:pointer;user-select:none;-webkit-user-select:none}.canvas .bar{fill:var(--accent);transition:fill .08s ease}.canvas .lbl{fill:var(--text);font-family:var(--sans)}.canvas .lbl{pointer-events:none}.canvas .ribbon{transition:fill-opacity .1s ease}.canvas .arc{cursor:pointer;transition:opacity .1s ease}.canvas .ribbon{cursor:pointer}#app.sm .canvas .val,#app.xs .canvas .val,#app.xs .canvas .lbl{display:none}.tip{position:absolute;z-index:4;pointer-events:none;background:#1a1a18;color:#f4f2ec;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 #00000038}.tip .tt-k{color:#b9b6ac}.tip .tt-v{font-weight:600}.empty{height:100%;display:grid;place-items:center;padding:16px}.empty-card{text-align:center;max-width:300px;color:var(--muted)}.empty-mark{color:var(--accent);margin-bottom:10px;opacity:.85}.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)}
