.controls[data-v-40f5a7c6]{flex-direction:column;gap:1rem;display:flex}.mode[data-v-40f5a7c6]{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.mode-label[data-v-40f5a7c6]{color:var(--muted);font-size:.875rem}.hint[data-v-40f5a7c6]{color:var(--muted);font-size:.8rem}.segment[data-v-40f5a7c6]{border:1px solid var(--border);background:var(--surface);border-radius:8px;display:inline-flex;overflow:hidden}.seg[data-v-40f5a7c6]{appearance:none;color:var(--muted);cursor:pointer;background:0 0;border:none;margin:0;padding:.4rem .9rem;font-size:.875rem;font-weight:600}.seg+.seg[data-v-40f5a7c6]{border-left:1px solid var(--border)}.seg.on[data-v-40f5a7c6]{background:color-mix(in srgb, var(--accent) 14%, var(--surface));color:var(--accent)}.actions[data-v-40f5a7c6]{flex-wrap:wrap;gap:.65rem;display:flex}.btn[data-v-40f5a7c6]{appearance:none;cursor:pointer;border:none;border-radius:10px;padding:.7rem 1.15rem;font-size:.95rem;font-weight:600;transition:transform .15s,opacity .15s}.btn[data-v-40f5a7c6]:active{transform:scale(.98)}.btn.primary[data-v-40f5a7c6]{background:var(--accent);color:#fff}.btn.primary[data-v-40f5a7c6]:hover{opacity:.92}.btn.danger[data-v-40f5a7c6]{background:var(--danger);color:#fff}.btn.danger[data-v-40f5a7c6]:hover{opacity:.92}.meta[data-v-40f5a7c6]{color:var(--muted);flex-wrap:wrap;gap:.75rem 1.25rem;font-size:.875rem;display:flex}.metric[data-v-18aa6231]{border:1px solid var(--border);background:var(--surface);border-radius:12px;padding:1.25rem 1.5rem;transition:border-color .2s,box-shadow .2s}.metric.active[data-v-18aa6231]{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent-soft)}.label[data-v-18aa6231]{color:var(--muted);margin-bottom:.5rem;font-size:.875rem}.value-row[data-v-18aa6231]{align-items:baseline;gap:.35rem;display:flex}.value[data-v-18aa6231]{font-variant-numeric:tabular-nums;letter-spacing:-.02em;font-size:2.25rem;font-weight:600;line-height:1.1}.unit[data-v-18aa6231]{color:var(--muted);font-size:.95rem}.avg[data-v-18aa6231]{color:var(--muted);margin-top:.65rem;font-size:.8rem}.settings[data-v-72e9c1aa]{margin-top:1.5rem}.toggle[data-v-72e9c1aa]{appearance:none;border:1px solid var(--border);color:var(--text);cursor:pointer;background:0 0;border-radius:8px;padding:.45rem .9rem;font-size:.875rem}.toggle[data-v-72e9c1aa]:hover{border-color:var(--accent)}.panel[data-v-72e9c1aa]{border:1px solid var(--border);background:var(--surface);border-radius:12px;margin-top:1rem;padding:1.25rem}.hint[data-v-72e9c1aa]{color:var(--muted);margin:0 0 1rem;font-size:.8rem;line-height:1.5}.grid[data-v-72e9c1aa]{grid-template-columns:1fr 1fr;gap:.85rem 1rem;display:grid}@media (width<=640px){.grid[data-v-72e9c1aa]{grid-template-columns:1fr}}label[data-v-72e9c1aa]{color:var(--muted);flex-direction:column;gap:.35rem;font-size:.8rem;display:flex}label.full[data-v-72e9c1aa]{grid-column:1/-1}input[data-v-72e9c1aa]{appearance:none;border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:8px;padding:.55rem .75rem;font-size:.9rem}input[data-v-72e9c1aa]:focus{border-color:var(--accent);outline:none}.actions[data-v-72e9c1aa]{flex-wrap:wrap;align-items:center;gap:.75rem;margin-top:1rem;display:flex}.btn[data-v-72e9c1aa]{appearance:none;cursor:pointer;background:var(--accent);color:#fff;border:none;border-radius:8px;padding:.5rem 1rem;font-size:.875rem;font-weight:600}.btn.ghost[data-v-72e9c1aa]{color:var(--text);border:1px solid var(--border);background:0 0}.saved[data-v-72e9c1aa]{color:var(--accent);font-size:.8rem}.chart-wrap[data-v-50b238d3]{border:1px solid var(--border);background:var(--surface);border-radius:12px;margin-top:1.5rem;padding:1rem 1.1rem .75rem}.head[data-v-50b238d3]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem 1rem;margin-bottom:.5rem;display:flex}.head h2[data-v-50b238d3]{margin:0;font-size:.95rem;font-weight:600}.legend[data-v-50b238d3]{color:var(--muted);flex-wrap:wrap;gap:.75rem;font-size:.8rem;display:flex}.item[data-v-50b238d3]:before{content:"";vertical-align:middle;border-radius:1px;width:.7rem;height:.2rem;margin-right:.35rem;display:inline-block}.item.dl[data-v-50b238d3]:before{background:var(--accent)}.item.ul[data-v-50b238d3]:before{background:#2e7d32}.item.ping[data-v-50b238d3]:before{background:#ed6c02}.canvas[data-v-50b238d3]{width:100%;min-height:200px;position:relative}svg[data-v-50b238d3]{width:100%;height:auto;display:block}.grid[data-v-50b238d3]{stroke:var(--border);stroke-width:1px;stroke-dasharray:3 4}.tick[data-v-50b238d3]{fill:var(--muted);font-size:11px}.tick.left[data-v-50b238d3]{text-anchor:end}.tick.right[data-v-50b238d3]{text-anchor:start}.tick.x[data-v-50b238d3]{text-anchor:middle}.axis-unit[data-v-50b238d3]{fill:var(--muted);font-size:10px}.right-unit[data-v-50b238d3]{text-anchor:end}.line[data-v-50b238d3]{fill:none;stroke-width:2px;stroke-linejoin:round;stroke-linecap:round}.line.dl[data-v-50b238d3]{stroke:var(--accent)}.line.ul[data-v-50b238d3]{stroke:#2e7d32}.line.ping[data-v-50b238d3]{stroke:#ed6c02;stroke-dasharray:4 3}.placeholder[data-v-50b238d3]{text-align:center;color:var(--muted);margin:0;padding:3.5rem 1rem;font-size:.875rem}.page[data-v-c2942a54]{max-width:880px;margin:0 auto;padding:2.5rem 1.25rem 3rem}.header[data-v-c2942a54]{margin-bottom:1.75rem}.header h1[data-v-c2942a54]{letter-spacing:-.03em;margin:0;font-size:clamp(1.75rem,4vw,2.25rem);font-weight:700}.subtitle[data-v-c2942a54]{color:var(--muted);margin:.5rem 0 0;font-size:.95rem;line-height:1.5}.error[data-v-c2942a54]{background:color-mix(in srgb, var(--danger) 12%, transparent);color:var(--danger);border-radius:8px;margin:1rem 0 0;padding:.75rem 1rem;font-size:.875rem}.metrics[data-v-c2942a54]{grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:1.75rem;display:grid}@media (width<=720px){.metrics[data-v-c2942a54]{grid-template-columns:1fr}}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f3f5f8;--surface:#fff;--text:#1a1f2c;--muted:#5c6578;--border:#d8dee8;--accent:#0b6bcb;--accent-soft:color-mix(in srgb, var(--accent) 25%, transparent);--danger:#c62828;color:var(--text);background:radial-gradient(ellipse 80% 50% at 10% -10%, #d6e6f8 0%, transparent 55%), radial-gradient(ellipse 60% 40% at 100% 0%, #e8eef5 0%, transparent 45%), var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;font-weight:400;line-height:1.5}*,:before,:after{box-sizing:border-box}body{min-height:100vh;margin:0}#app{min-height:100vh}button,input{font:inherit}
