@import "https://fonts.googleapis.com/css2?family=Syne:wght@600;700;800&family=JetBrains+Mono:wght@400;500;700&family=DM+Sans:opsz,wght@9..40,300;9..40,400;9..40,500;9..40,600&display=swap";*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg-base:#050d07;--bg-surface:#09140a;--bg-elevated:#0e1b0f;--bg-hover:#122115;--color-primary:#4ade80;--color-secondary:#166534;--color-sec-mid:#15803d;--color-sec-text:#86efac;--color-danger:#f87171;--color-warning:#fbbf24;--cb-closed:#4ade80;--cb-open:#f87171;--cb-half:#fbbf24;--text-primary:#e2ede4;--text-muted:#4d7358;--text-faint:#243829;--border:#15281a;--border-mid:#1a3320;--font-display:"Syne", sans-serif;--font-mono:"JetBrains Mono", monospace;--font-body:"DM Sans", sans-serif;--radius-sm:4px;--radius:8px;--radius-lg:12px}html,body{height:100%;font-family:var(--font-body);color:var(--text-primary);background-color:var(--bg-base);-webkit-font-smoothing:antialiased;background-image:linear-gradient(#1665340e 1px,#0000 1px),linear-gradient(90deg,#1665340e 1px,#0000 1px);background-size:40px 40px;font-size:14px}#root,.app{flex-direction:column;min-height:100vh;display:flex}.header{border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:100;background:linear-gradient(90deg,#050d07f2 0%,#09140af2 100%);justify-content:space-between;align-items:center;padding:.75rem 1.5rem;display:flex;position:sticky;top:0}.header-left{align-items:baseline;gap:.9rem;display:flex}.header-right{align-items:center;gap:1.5rem;display:flex}.header-logo{font-family:var(--font-display);letter-spacing:.06em;color:var(--text-primary);font-size:1.35rem;font-weight:800}.logo-bracket{color:var(--color-sec-mid)}.header-sub{font-family:var(--font-mono);color:var(--text-muted);letter-spacing:.08em;text-transform:uppercase;font-size:.65rem}.ws-status{align-items:center;gap:.4rem;display:flex}.ws-dot{background:var(--dot-color,var(--text-muted));width:7px;height:7px;box-shadow:0 0 7px var(--dot-color,var(--text-muted));border-radius:50%;animation:2.4s ease-in-out infinite blink}.ws-label{font-family:var(--font-mono);letter-spacing:.06em;color:var(--dot-color,var(--text-muted));font-size:.68rem}.header-rps{font-family:var(--font-mono);color:var(--color-primary);font-size:1.05rem;font-weight:700}.header-rps small{color:var(--text-muted);margin-left:.2em;font-size:.6rem}.main-grid{flex:1;grid-template-columns:repeat(4,1fr);align-items:start;gap:1rem;padding:1rem 1.5rem 2rem;display:grid}.col-full{grid-column:1/-1}.col-2{grid-column:span 2}.col-1{grid-column:span 1}.card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.1rem 1.25rem 1.25rem;position:relative;overflow:hidden}.card:before{content:"";pointer-events:none;background:linear-gradient(140deg,#1665340b 0%,#0000 55%);position:absolute;inset:0}.card-title{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted);margin-bottom:.9rem;font-size:.62rem;font-weight:700}.stat-strip{grid-template-columns:repeat(5,1fr);gap:.75rem;display:grid}.stat-item{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);padding:.9rem 1.1rem;position:relative;overflow:hidden}.stat-item:after{content:"";background:var(--color-secondary);border-radius:0 2px 2px 0;width:2px;position:absolute;top:0;bottom:0;left:0}.stat-item.stat-danger:after{background:var(--color-danger)}.stat-label{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);margin-bottom:.35rem;font-size:.58rem}.stat-value{font-family:var(--font-mono);color:var(--text-primary);font-size:1.7rem;font-weight:700;line-height:1}.stat-item.stat-danger .stat-value{color:var(--color-danger)}.stat-sub{color:var(--text-muted);margin-left:.25em;font-size:.68rem;font-weight:400}.gauge-center{flex-direction:column;justify-content:center;align-items:center;gap:.5rem;min-height:190px;display:flex}.gauge-value{font-family:var(--font-mono);font-size:3.8rem;font-weight:700;line-height:1;transition:color .5s}.gauge-unit{opacity:.65;margin-left:.08em;font-size:1.6rem;font-weight:400}.gauge-sub{font-family:var(--font-mono);color:var(--text-muted);letter-spacing:.05em;font-size:.62rem}.cb-empty{font-family:var(--font-mono);color:var(--text-muted);font-size:.72rem}.cb-list{flex-direction:column;gap:.5rem;display:flex}.cb-item{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);justify-content:space-between;align-items:center;padding:.5rem .7rem;display:flex}.cb-route{font-family:var(--font-mono);color:var(--text-primary);font-size:.7rem}.cb-badge{font-family:var(--font-mono);letter-spacing:.08em;border:1px solid;border-radius:99px;align-items:center;gap:.3rem;padding:.12rem .5rem;font-size:.58rem;font-weight:700;transition:color .4s,background .4s;display:flex}.cb-dot{border-radius:50%;flex-shrink:0;width:5px;height:5px}.re-list{flex-direction:column;gap:.4rem;display:flex}.re-row{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);justify-content:space-between;align-items:center;gap:.5rem;padding:.4rem .7rem;display:flex}.re-info{flex:1;align-items:center;gap:.5rem;min-width:0;display:flex}.re-method{font-family:var(--font-mono);letter-spacing:.05em;color:var(--color-sec-text);background:#16a34a21;border-radius:3px;flex-shrink:0;padding:.1rem .35rem;font-size:.58rem;font-weight:700}.re-path{font-family:var(--font-mono);color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:.7rem;overflow:hidden}.re-count{font-family:var(--font-mono);color:var(--text-muted);flex-shrink:0;font-size:.58rem}.re-actions{flex-shrink:0;align-items:center;gap:.5rem;display:flex}.re-badge{font-family:var(--font-mono);font-size:.66rem;font-weight:600}.re-btn{background:var(--color-secondary);color:var(--color-sec-text);border-radius:var(--radius-sm);font-family:var(--font-mono);letter-spacing:.04em;cursor:pointer;border:none;padding:.22rem .6rem;font-size:.66rem;font-weight:700;transition:background .15s}.re-btn:hover:not(:disabled){background:var(--color-sec-mid)}.re-btn:disabled{opacity:.45;cursor:not-allowed}.recharts-tooltip-wrapper{outline:none}@keyframes blink{0%,to{opacity:1;transform:scale(1)}50%{opacity:.45;transform:scale(.82)}}.header-info-btn{border:1px solid var(--border-mid);border-radius:var(--radius-sm);color:var(--text-muted);font-family:var(--font-mono);letter-spacing:.07em;cursor:pointer;background:0 0;align-items:center;gap:.35rem;padding:.3rem .65rem;font-size:.64rem;font-weight:600;transition:color .2s,border-color .2s;display:flex}.header-info-btn:hover{color:var(--color-primary);border-color:var(--color-secondary)}.about-section{border-top:1px solid var(--border);background:var(--bg-surface);padding:3.5rem 1.5rem 4rem}.about-inner{flex-direction:column;gap:2.5rem;max-width:1200px;margin:0 auto;display:flex}.about-header{flex-direction:column;gap:.75rem;max-width:780px;display:flex}.about-title{font-family:var(--font-display);letter-spacing:.04em;color:var(--text-primary);font-size:1.6rem;font-weight:800}.about-title-sub{color:var(--text-muted);letter-spacing:.02em;font-size:1rem;font-weight:600}.about-tagline{color:var(--text-muted);max-width:680px;font-size:.9rem;line-height:1.65}.about-grid{grid-template-columns:repeat(2,1fr);gap:1rem;display:grid}.about-card-wide{grid-column:1/-1}.about-card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);flex-direction:column;gap:.55rem;padding:1.1rem 1.25rem 1.25rem;display:flex;position:relative;overflow:hidden}.about-card:before{content:"";pointer-events:none;background:linear-gradient(140deg,#1665340a 0%,#0000 55%);position:absolute;inset:0}.about-card-label{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--color-sec-text);font-size:.6rem;font-weight:700}.about-card-text{color:var(--text-muted);font-size:.82rem;line-height:1.7}.about-card-text code{font-family:var(--font-mono);color:var(--color-sec-text);background:#4ade8012;border-radius:3px;padding:.05rem .3rem;font-size:.77rem}.about-card-text strong{color:var(--text-primary);font-weight:600}.about-stack{flex-direction:column;gap:.75rem;display:flex}.about-tags{flex-wrap:wrap;gap:.45rem;display:flex}.about-tag{font-family:var(--font-mono);letter-spacing:.05em;border:1px solid var(--border-mid);color:var(--text-muted);background:var(--bg-elevated);border-radius:99px;padding:.2rem .55rem;font-size:.66rem;font-weight:600;transition:color .2s,border-color .2s}.about-tag:hover{color:var(--color-primary);border-color:var(--color-secondary)}.about-card-locust{border-color:var(--border-mid)}.about-locust-content{justify-content:space-between;align-items:center;gap:2rem;display:flex}.about-locust-btn{background:var(--color-secondary);color:var(--color-sec-text);border-radius:var(--radius-sm);font-family:var(--font-mono);letter-spacing:.05em;white-space:nowrap;border:none;flex-shrink:0;align-items:center;gap:.4rem;padding:.4rem .9rem;font-size:.68rem;font-weight:700;text-decoration:none;transition:background .15s;display:inline-flex}.about-locust-btn:hover{background:var(--color-sec-mid)}@media (width<=600px){.about-locust-content{flex-direction:column;align-items:flex-start}}.about-modules{flex-direction:column;gap:.75rem;display:flex}.about-module-grid{grid-template-columns:repeat(4,1fr);gap:.75rem;display:grid}.about-module{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:.35rem;padding:.75rem .9rem;display:flex;position:relative;overflow:hidden}.about-module:after{content:"";background:var(--color-secondary);border-radius:0 2px 2px 0;width:2px;position:absolute;top:0;bottom:0;left:0}.about-module-name{font-family:var(--font-mono);color:var(--color-sec-text);font-size:.7rem;font-weight:700}.about-module-desc{color:var(--text-muted);font-size:.75rem;line-height:1.55}@media (width<=900px){.about-grid{grid-template-columns:1fr}.about-module-grid{grid-template-columns:repeat(2,1fr)}.main-grid{grid-template-columns:1fr}.col-2,.col-1{grid-column:span 1}.stat-strip{grid-template-columns:repeat(2,1fr)}}@media (width<=540px){.about-module-grid,.stat-strip{grid-template-columns:1fr}}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-mid);border-radius:2px}
