:root{--bg-0: #0b0e14;--bg-1: #121722;--bg-2: #1a2130;--fg-0: #e8ebf2;--fg-1: #9aa4b8;--fg-2: #5f6b82;--accent: #5b8cff;--accent-2: #7c5cff;--good: #2ecc71;--warn: #f1c40f;--bad: #e74c3c;--track: #232b3d;--border: #232b3d;--card: linear-gradient(180deg, var(--bg-1), var(--bg-2))}[data-theme=light]{--bg-0: #f4f6fb;--bg-1: #ffffff;--bg-2: #eef1f7;--fg-0: #1a2233;--fg-1: #5a6580;--fg-2: #8b95ab;--track: #dde3ef;--border: #e2e7f0;--card: linear-gradient(180deg, #ffffff, #f3f6fc)}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{min-height:100%}body{background:radial-gradient(1200px 600px at 50% -10%,rgba(91,140,255,.18) 0%,transparent 60%),var(--bg-0);color:var(--fg-0);font-family:Inter,Segoe UI,system-ui,-apple-system,sans-serif;-webkit-font-smoothing:antialiased;transition:background .3s ease,color .3s ease}.app{display:flex;flex-direction:column;align-items:center;padding:22px 18px 60px;text-align:center}.topbar{width:100%;max-width:720px;display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.brand{display:flex;align-items:center;gap:10px}.brand .dot{width:12px;height:12px;border-radius:50%;background:linear-gradient(135deg,var(--accent),var(--accent-2));box-shadow:0 0 18px var(--accent)}.brand h1{font-size:22px;font-weight:700;letter-spacing:.5px}.iconbtn{background:var(--card);border:1px solid var(--border);color:var(--fg-1);width:38px;height:38px;border-radius:10px;cursor:pointer;font-size:16px;display:flex;align-items:center;justify-content:center;transition:color .15s,border-color .15s}.iconbtn:hover{color:var(--fg-0);border-color:var(--accent)}.subtitle{color:var(--fg-1);font-size:13px;margin-bottom:22px}.gauge-wrap{position:relative;width:300px;height:300px}svg{display:block}.gauge-track{stroke:var(--track)}.gauge-arc{stroke:url(#grad);stroke-linecap:round;transition:stroke-dashoffset .25s ease}.gauge-center{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center}.gauge-value{font-size:54px;font-weight:700;line-height:1;font-variant-numeric:tabular-nums}.gauge-dec{font-size:22px;color:var(--fg-1)}.gauge-unit{color:var(--fg-1);font-size:13px;margin-top:6px;letter-spacing:1px}.gauge-phase{margin-top:12px;font-size:12px;text-transform:uppercase;letter-spacing:2px;color:var(--accent);min-height:16px}.primary{display:grid;grid-template-columns:1fr 1fr;gap:14px;width:340px;margin-top:22px}.pcard{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:16px 12px;transition:border-color .15s,box-shadow .15s}.pcard .label{font-size:10px;text-transform:uppercase;letter-spacing:1.5px;color:var(--fg-2)}.pcard .num{font-size:28px;font-weight:700;margin-top:8px;font-variant-numeric:tabular-nums}.pcard .num small{font-size:12px;color:var(--fg-1);font-weight:400;margin-left:3px}.pcard.active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset}.secondary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;width:340px;margin-top:12px}.scard{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:10px 6px;transition:border-color .15s,box-shadow .15s}.scard.active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset}.scard .label{font-size:9px;text-transform:uppercase;letter-spacing:1px;color:var(--fg-2)}.scard .num{font-size:16px;font-weight:600;margin-top:5px;font-variant-numeric:tabular-nums}.scard .num small{font-size:9px;color:var(--fg-1);font-weight:400}.verdict{width:340px;margin-top:16px;padding:12px 14px;border-radius:12px;background:var(--card);border:1px solid var(--border);font-size:13px;color:var(--fg-1);min-height:44px;display:flex;align-items:center;gap:10px;justify-content:center}.verdict .badge{font-size:18px}.server{width:340px;margin-top:12px;font-size:11px;color:var(--fg-2);line-height:1.6;min-height:18px}.server b{color:var(--fg-1);font-weight:600}.target-toggle{display:inline-flex;margin-top:22px;padding:4px;gap:4px;background:var(--card);border:1px solid var(--border);border-radius:999px}.seg{padding:8px 16px;font-size:12px;font-weight:500;cursor:pointer;color:var(--fg-1);background:transparent;border:none;border-radius:999px;transition:background .15s,color .15s}.seg.on{background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff}.seg:disabled{cursor:not-allowed;opacity:.6}.actions{display:flex;gap:10px;margin-top:18px;flex-wrap:wrap;justify-content:center}button.go{padding:13px 40px;font-size:15px;font-weight:600;letter-spacing:.5px;color:#fff;cursor:pointer;background:linear-gradient(135deg,var(--accent),var(--accent-2));border:none;border-radius:999px;box-shadow:0 8px 30px #5b8cff59;transition:transform .12s ease,box-shadow .2s ease,opacity .2s ease}button.go:hover{transform:translateY(-1px);box-shadow:0 10px 36px #5b8cff80}button.go:active{transform:translateY(0)}button.go:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}button.ghost{padding:13px 20px;font-size:13px;font-weight:500;cursor:pointer;color:var(--fg-1);background:var(--card);border:1px solid var(--border);border-radius:999px;transition:color .15s,border-color .15s}button.ghost:hover{color:var(--fg-0);border-color:var(--accent)}button.ghost:disabled{opacity:.4;cursor:not-allowed}.history{width:340px;margin-top:30px;text-align:left}.history h2{font-size:12px;text-transform:uppercase;letter-spacing:1.5px;color:var(--fg-2);margin-bottom:10px;display:flex;justify-content:space-between;align-items:center}.history h2 .clear{cursor:pointer;color:var(--fg-2);font-size:10px;text-transform:none;letter-spacing:0}.history h2 .clear:hover{color:var(--bad)}.spark{width:100%;height:46px;margin-bottom:10px}.hrow{display:grid;grid-template-columns:1fr auto auto auto;gap:8px;padding:8px 10px;border-radius:8px;background:var(--card);border:1px solid var(--border);font-size:11px;margin-bottom:6px;align-items:center}.hrow .t{color:var(--fg-2)}.hrow .d{color:var(--accent);font-weight:600;font-variant-numeric:tabular-nums}.hrow .u{color:var(--fg-1);font-variant-numeric:tabular-nums}.hrow .p{color:var(--fg-2);font-variant-numeric:tabular-nums}.empty{color:var(--fg-2);font-size:12px;padding:8px 0}.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%) translateY(20px);background:var(--bg-2);border:1px solid var(--accent);color:var(--fg-0);padding:10px 18px;border-radius:10px;font-size:13px;opacity:0;pointer-events:none;transition:opacity .25s,transform .25s}.toast.show{opacity:1;transform:translate(-50%) translateY(0)}
