:root{--dark-bg:#0b0f17;--dark-surface:#1a1f2e;--dark-surface-hover:#252b3c;--dark-border:#2a3441;--dark-border-hover:#3d4a5c;--dark-text-primary:#fff;--dark-text-secondary:#b4bcd0;--dark-text-muted:#6b7280;--dark-primary:#3b82f6;--dark-primary-hover:#2563eb;--light-bg:#e2ebff;--light-surface:#fff;--light-surface-hover:#f7faff;--light-border:#c7d3ff;--light-border-hover:#a8b8ff;--light-text-primary:#040f34;--light-text-secondary:#5c6584;--light-text-muted:#828db3;--light-primary:#002dcb;--light-primary-hover:#001b8a;--bg:var(--dark-bg);--surface:var(--dark-surface);--surface-hover:var(--dark-surface-hover);--border:var(--dark-border);--border-hover:var(--dark-border-hover);--text-primary:var(--dark-text-primary);--text-secondary:var(--dark-text-secondary);--text-muted:var(--dark-text-muted);--primary:var(--dark-primary);--primary-hover:var(--dark-primary-hover);--skeleton-base:hsla(0,0%,100%,.06);--skeleton-highlight:hsla(0,0%,100%,.14)}[data-theme=light]{--bg:var(--light-bg);--surface:var(--light-surface);--surface-hover:var(--light-surface-hover);--border:var(--light-border);--border-hover:var(--light-border-hover);--text-primary:var(--light-text-primary);--text-secondary:var(--light-text-secondary);--text-muted:var(--light-text-muted);--primary:var(--light-primary);--primary-hover:var(--light-primary-hover);--shadow-sm:var(--light-shadow-sm);--shadow-md:var(--light-shadow-md);--shadow-lg:var(--light-shadow-lg);--skeleton-base:rgba(4,15,52,.06);--skeleton-highlight:rgba(4,15,52,.12)}:root{--success:#10b981;--warning:#f59e0b;--error:#ef4444;--info:#06b6d4;--success-bg:rgba(16,185,129,.1);--success-border:rgba(16,185,129,.3);--warning-bg:rgba(245,158,11,.1);--warning-border:rgba(245,158,11,.3);--error-bg:rgba(239,68,68,.1);--error-border:rgba(239,68,68,.3);--radius-sm:6px;--radius-md:12px;--radius-lg:16px;--dark-shadow-sm:0 1px 3px rgba(0,0,0,.12),0 1px 2px rgba(0,0,0,.24);--dark-shadow-md:0 4px 6px rgba(0,0,0,.16),0 2px 4px rgba(0,0,0,.06);--dark-shadow-lg:0 10px 25px rgba(0,0,0,.2),0 6px 10px rgba(0,0,0,.15);--light-shadow-sm:0 1px 3px rgba(0,45,203,.08),0 1px 2px rgba(0,45,203,.06);--light-shadow-md:0 4px 6px rgba(0,45,203,.1),0 2px 4px rgba(0,45,203,.06);--light-shadow-lg:0 10px 25px rgba(0,45,203,.15),0 6px 10px rgba(0,45,203,.1);--shadow-sm:var(--dark-shadow-sm);--shadow-md:var(--dark-shadow-md);--shadow-lg:var(--dark-shadow-lg);--transition-fast:150ms cubic-bezier(0.4,0,0.2,1);--transition-normal:300ms cubic-bezier(0.4,0,0.2,1);--chart-h:clamp(146px,27vh,357px)}*{box-sizing:border-box}body,html{height:100%;margin:0;padding:0}body{background:var(--bg);color:var(--text-primary);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:flex;flex-direction:column;min-height:100vh}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.2;margin:0}h1{font-size:1.875rem}h2{font-size:1.25rem}h3{font-size:1.125rem}.hidden{display:none!important}.site-header{backdrop-filter:blur(12px);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:50}[data-theme=dark] .site-header{background:rgba(26,31,46,.95)}[data-theme=light] .site-header{background:hsla(0,0%,100%,.95)}.site-header .inner{gap:1rem;justify-content:space-between;margin:0 auto;max-width:1400px;padding:1rem 1.5rem}.brand,.site-header .inner{align-items:center;display:flex}.brand{gap:.75rem}.brand .logo{border-radius:var(--radius-sm);height:32px;width:32px}[data-theme=dark] .brand .logo{filter:drop-shadow(0 2px 8px rgba(59,130,246,.3))}[data-theme=light] .brand .logo{filter:drop-shadow(0 2px 4px rgba(0,45,203,.2))}.brand h1{background:var(--primary);-webkit-background-clip:text;font-size:1.5rem;font-weight:700;-webkit-text-fill-color:transparent;background-clip:text}.status{align-items:center;display:flex;gap:1rem}main.container{flex:1 0 auto}.container{column-gap:2rem;display:grid;margin:0 auto;max-width:1400px;padding:2rem 1.5rem;row-gap:1rem}@media (min-width:1200px){.container{grid-template-areas:"manage manage" "stats nodes" "stats charts";grid-template-columns:1fr 2fr}.panel--manage{grid-area:manage}.panel--stats{grid-area:stats}.panel--charts{grid-area:charts}.panel--nodes{grid-area:nodes}}@media (min-width:1600px){.container{column-gap:1.5rem;row-gap:.5rem}.charts{gap:1rem}.panel h2{margin-bottom:1rem}}.panel{background:transparent;border:none}.panel h2{color:var(--text-secondary);font-size:.875rem;font-weight:600;letter-spacing:.05em;margin-bottom:1.5rem;text-transform:uppercase}.chart,.node-list,.stat-holder,.sub-form{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);transition:all var(--transition-fast)}.sub-form:hover{border-color:var(--border-hover);box-shadow:var(--shadow-md)}.sub-form{padding:1.5rem}.sub-form .row{display:grid;gap:1rem;grid-template-columns:2fr 3fr 3fr;margin-bottom:1rem}.sub-form .row:last-child{align-items:end;grid-template-columns:1fr 1fr auto}.sub-form label{display:flex;flex-direction:column;gap:.5rem}.sub-form label span{color:var(--text-secondary);font-size:.875rem;font-weight:500}input{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);font-size:.875rem;outline:none;padding:.75rem 1rem;transition:all var(--transition-fast)}input:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(59,130,246,.1)}input::placeholder{color:var(--text-muted)}.actions{align-items:center;display:flex;gap:.75rem;justify-content:flex-end}.sub-msg{font-size:.875rem;margin-top:.5rem;min-height:1.25rem}.sub-msg.ok{color:var(--success)}.sub-msg.err{color:var(--error)}.hint{color:var(--text-muted);font-size:.875rem;margin-top:1rem}.btn,button{align-items:center;background:var(--primary);border:none;border-radius:var(--radius-sm);color:#fff;cursor:pointer;display:inline-flex;font-size:.875rem;font-weight:500;justify-content:center;padding:.75rem 1.5rem;text-decoration:none;transition:all var(--transition-fast)}.btn:hover,button:hover{background:var(--primary-hover);box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn:active,button:active{transform:translateY(0)}.btn-outline{background:transparent;border:1px solid var(--primary);color:var(--primary)}.btn-outline:hover{background:var(--primary);color:#fff}.btn-ghost{background:transparent;border:1px solid var(--border);color:var(--text-secondary)}.btn-ghost:hover{background:var(--surface-hover);border-color:var(--border-hover);color:var(--text-primary)}.badge{align-items:center;background:var(--surface);border:1px solid;border-color:var(--border);border-radius:999px;color:var(--text-muted);display:inline-flex;font-size:.75rem;font-weight:500;padding:.375rem .75rem}.badge.ok{background:var(--success-bg);border-color:var(--success-border);color:var(--success)}.badge.warn{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning)}.badge.err{background:var(--error-bg);border-color:var(--error-border);color:var(--error)}.stats{display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.stat-holder.big-info{align-items:center;display:flex;min-height:120px;padding:1.5rem}.big-info .icon-full-width{align-items:center;background:rgba(59,130,246,.1);border-radius:var(--radius-md);display:flex;height:80px;justify-content:center;margin-right:1rem;width:80px}.big-info .icon-full-width i{color:var(--primary);font-size:2.5rem}.big-info .big-details-holder{flex:1}.big-info .small-title{color:var(--text-secondary);display:block;font-size:.875rem;font-weight:500;letter-spacing:.05em;margin-bottom:.5rem;text-transform:uppercase}.big-info .big-details{color:var(--text-primary);display:block;font-size:2rem;font-weight:700;line-height:1}.charts{display:grid;gap:1.5rem;grid-template-columns:repeat(2,1fr)}.chart{display:flex;flex-direction:column;height:var(--chart-h);overflow:hidden;padding:1.5rem;position:relative}.chart-head{align-items:center;display:flex;flex-shrink:0;justify-content:space-between;margin-bottom:1rem}.chart-head span:first-child{color:var(--text-primary);font-size:1rem;font-weight:600}.chip{background:var(--primary);border-radius:999px;color:#fff;font-size:.75rem;font-weight:500;padding:.25rem .75rem}.chart-container{flex:1 1 auto;height:100%;min-height:0;position:relative;width:100%}canvas{display:block;height:100%!important;left:0;position:absolute;top:0;width:100%!important}@keyframes skeleton-wave{0%{opacity:0;transform:translateX(-100%)}50%{opacity:1}to{opacity:0;transform:translateX(100%)}}@keyframes skeleton-pulse{0%,to{opacity:.7;transform:scale(1)}50%{opacity:1;transform:scale(1.02)}}@keyframes skeleton-shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.skeleton{animation:skeleton-pulse 2s cubic-bezier(.4,0,.6,1) infinite;background:var(--skeleton-base);border-color:transparent!important;border-radius:var(--radius-sm);color:transparent!important;overflow:hidden;position:relative}.skeleton:before{animation:skeleton-wave 2.5s cubic-bezier(.25,.46,.45,.94) infinite;background:linear-gradient(110deg,transparent 0,transparent 35%,var(--skeleton-highlight) 50%,transparent 65%,transparent 100%);border-radius:inherit;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.skeleton-line{background:var(--skeleton-base);border-radius:var(--radius-sm);display:inline-block;height:1rem}.skeleton-text{border-radius:6px;height:.875rem;margin-bottom:.5rem}.skeleton-text:last-child{margin-bottom:0;width:75%}.skeleton-title{border-radius:8px;height:1.25rem;margin-bottom:.75rem}.skeleton-avatar{border-radius:50%;height:40px;width:40px}.skeleton-button{border-radius:var(--radius-sm);height:2.5rem;min-width:80px}.skeleton-card{border-radius:var(--radius-md);min-height:100px;padding:1rem}.chip.skeleton{background:var(--skeleton-base);border-radius:999px;display:inline-block;height:1.5rem;padding:0;width:64px}#net-stats.is-loading .stat-holder{animation:skeleton-pulse 2s cubic-bezier(.4,0,.6,1) infinite}#net-stats.is-loading .stat-holder:first-child{animation-delay:0s}#net-stats.is-loading .stat-holder:nth-child(2){animation-delay:.1s}#net-stats.is-loading .stat-holder:nth-child(3){animation-delay:.2s}#net-stats.is-loading .stat-holder:nth-child(4){animation-delay:.3s}#net-stats.is-loading .stat-holder:nth-child(5){animation-delay:.4s}#net-stats.is-loading .stat-holder:nth-child(6){animation-delay:.5s}#net-stats.is-loading .icon-full-width{background:var(--skeleton-base);overflow:hidden;position:relative}#net-stats.is-loading .icon-full-width i{color:var(--skeleton-highlight);opacity:.3}#net-stats.is-loading .icon-full-width:before{animation:skeleton-wave 2.5s cubic-bezier(.25,.46,.45,.94) infinite;background:linear-gradient(110deg,transparent 0,transparent 35%,var(--skeleton-highlight) 50%,transparent 65%,transparent 100%);border-radius:inherit;bottom:0;content:"";left:0;position:absolute;right:0;top:0}#net-stats.is-loading .small-title{overflow:hidden;position:relative}#net-stats.is-loading .small-title:after{background:var(--skeleton-base);border-radius:6px;content:"";height:100%;left:0;position:absolute;top:0;width:100%}#net-stats.is-loading .small-title:before{animation:skeleton-wave 2.5s cubic-bezier(.25,.46,.45,.94) infinite;background:linear-gradient(110deg,transparent 0,transparent 35%,var(--skeleton-highlight) 50%,transparent 65%,transparent 100%);border-radius:inherit;content:"";height:100%;left:0;position:absolute;top:0;width:100%;z-index:1}#net-stats.is-loading .big-details{background:var(--skeleton-base);border-radius:10px;color:transparent!important;min-height:2rem;overflow:hidden;position:relative}#net-stats.is-loading .big-details:before{animation:skeleton-wave 2.5s cubic-bezier(.25,.46,.45,.94) infinite;background:linear-gradient(110deg,transparent 0,transparent 35%,var(--skeleton-highlight) 50%,transparent 65%,transparent 100%);border-radius:inherit;bottom:0;content:"";left:0;position:absolute;right:0;top:0}#net-stats.is-loading #stat-best-block:after{width:85px}#net-stats.is-loading #stat-best-block:after,#net-stats.is-loading #stat-last-block:after{background:var(--skeleton-base);border-radius:inherit;content:"";height:100%;position:absolute}#net-stats.is-loading #stat-last-block:after{width:65px}#net-stats.is-loading #stat-avg-block-time:after{width:55px}#net-stats.is-loading #stat-avg-block-time:after,#net-stats.is-loading #stat-gas-price:after{background:var(--skeleton-base);border-radius:inherit;content:"";height:100%;position:absolute}#net-stats.is-loading #stat-gas-price:after{width:75px}#net-stats.is-loading #stat-gas-limit:after{width:95px}#net-stats.is-loading #stat-gas-limit:after,#net-stats.is-loading #stat-nodes:after{background:var(--skeleton-base);border-radius:inherit;content:"";height:100%;position:absolute}#net-stats.is-loading #stat-nodes:after{width:25px}#net-stats.is-loading .big-details,.big-info .big-details.skeleton{background:var(--skeleton-base);border-radius:10px;display:inline-block;height:2rem;min-width:140px}.node-list.is-loading .row{animation:skeleton-pulse 2s cubic-bezier(.4,0,.6,1) infinite;opacity:1}.node-list.is-loading .row .skeleton-line{background:var(--skeleton-base);overflow:hidden;position:relative;width:100%}.node-list.is-loading .row .skeleton-line:before{animation:skeleton-wave 2.5s cubic-bezier(.25,.46,.45,.94) infinite;background:linear-gradient(110deg,transparent 0,transparent 35%,var(--skeleton-highlight) 50%,transparent 65%,transparent 100%);border-radius:inherit;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.chart[data-loading="1"] canvas{opacity:0;transition:opacity .3s ease}.chart[data-loading="1"]:after{animation:skeleton-pulse 2s cubic-bezier(.4,0,.6,1) infinite;background:var(--skeleton-base);border:1px solid var(--border);border-radius:var(--radius-md);bottom:24px;content:"";left:24px;overflow:hidden;position:absolute;right:24px;top:60px}.skeleton:first-child{animation-delay:0s}.skeleton:nth-child(2){animation-delay:.1s}.skeleton:nth-child(3){animation-delay:.2s}.skeleton:nth-child(4){animation-delay:.3s}.skeleton:nth-child(5){animation-delay:.4s}.skeleton-text:first-child{animation-delay:0s}.skeleton-text:nth-child(2){animation-delay:.1s}.skeleton-text:nth-child(3){animation-delay:.2s}.node-list.is-loading .row:first-child{animation-delay:0s}.node-list.is-loading .row:nth-child(2){animation-delay:.1s}.node-list.is-loading .row:nth-child(3){animation-delay:.2s}.node-list.is-loading .row:nth-child(4){animation-delay:.3s}.node-list.is-loading .row:nth-child(5){animation-delay:.4s}@media (prefers-reduced-motion:reduce){#net-stats.is-loading .icon-full-width,#net-stats.is-loading .icon-full-width:before,#net-stats.is-loading .small-title:after,#net-stats.is-loading .small-title:before,.chart[data-loading="1"]:after,.chart[data-loading="1"]:before,.node-list.is-loading .row,.node-list.is-loading .row .skeleton-line:before,.skeleton,.skeleton:before{animation:none}.skeleton{opacity:.6}}.chart-tip{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-lg);color:var(--text-primary);font-size:.875rem;padding:.5rem .75rem;pointer-events:none;position:fixed;z-index:1000}.chart-tip .k{color:var(--text-muted);margin-right:.5rem}.node-list{overflow:hidden}.node-list .empty{align-items:center;color:var(--text-secondary);display:flex;flex-direction:column;justify-content:center;min-height:160px;padding:2rem 1.5rem;text-align:center}.node-list .empty .icon{color:var(--text-muted);font-size:1.5rem;margin-bottom:.5rem}.node-list .empty .title{color:var(--text-primary);font-weight:600;margin-bottom:.25rem}.node-list .empty .hint{color:var(--text-muted);font-size:.875rem}.node-list .list-head,.node-list .row{align-items:center;display:grid;gap:1rem;grid-template-columns:2fr 1fr 1fr 1fr;padding:1rem 1.5rem}.node-list .list-head{background:var(--bg);border-bottom:1px solid var(--border);color:var(--text-secondary);font-size:.75rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase}.node-list .row{border-top:1px solid var(--border);transition:all var(--transition-fast)}.node-list .row:first-of-type{border-top:none}.node-list .row:hover{background:var(--surface-hover)}.node-list .name{color:var(--text-primary);font-weight:600}.node-list .latency,.node-list .latest{color:var(--text-secondary);font-family:JetBrains Mono,Fira Code,monospace}.node-list .status{align-items:center;display:flex}.pill{border:1px solid;border-radius:999px;font-size:.75rem;font-weight:500;padding:.25rem .75rem}.pill.ok{background:var(--success-bg);border-color:var(--success-border);color:var(--success)}.pill.warn{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning)}.pill.err{background:var(--error-bg);border-color:var(--error-border);color:var(--error)}footer{background:var(--surface);border-top:1px solid var(--border);margin-top:auto;padding:2rem 1.5rem}footer .inner{align-items:center;display:flex;justify-content:center;margin:0 auto;max-width:1400px}footer small{color:var(--text-muted);font-size:.875rem}@media (max-width:900px){.container{column-gap:1.25rem;padding:1.5rem 1rem;row-gap:1rem}.site-header .inner{padding:1rem}.sub-form .row,.sub-form .row:last-child{grid-template-columns:1fr}.actions{justify-content:flex-start}.charts,.stats{grid-template-columns:1fr}.chart{padding:1rem}.node-list .list-head,.node-list .row{gap:.5rem;grid-template-columns:1fr;text-align:left}.node-list .list-head{display:none}.node-list .row{display:block;padding:1rem}.node-list .name{display:block;margin-bottom:.5rem}.node-list .latency,.node-list .latest,.node-list .status{display:inline-block;margin-right:1rem}}@media (max-width:520px){.big-info{min-height:100px;padding:1rem}.big-info .icon-full-width{height:60px;width:60px}.big-info .icon-full-width i{font-size:2rem}.big-info .big-details{font-size:1.5rem}.chart{padding:1rem}}@media (min-width:641px) and (max-width:900px){.site-header .inner{gap:1.25rem;padding:1rem 1.25rem}.site-header .brand .logo{height:30px;width:30px}.site-header .brand h1{font-size:1.25rem}.site-header .status{gap:1rem}.site-header .badge{font-size:.8125rem;padding:.375rem .75rem}.site-header .btn{font-size:.875rem;padding:.75rem 1rem}}@media (max-width:640px){.site-header .inner{align-items:center;flex-wrap:nowrap;gap:1rem;justify-content:space-between;padding:1rem}.site-header .brand{flex-shrink:0;gap:.5rem}.site-header .brand .logo{height:30px;width:30px}.site-header .brand h1{font-size:1.125rem;font-weight:700}.site-header .status{align-items:center;flex:1;gap:.75rem;justify-content:flex-end;min-width:0}.site-header .badge{font-size:.75rem;min-width:fit-content;padding:.375rem .75rem;white-space:nowrap}.site-header .btn{flex-shrink:0;font-size:.875rem;font-weight:500;min-width:fit-content;padding:.625rem .875rem}}@media (max-width:400px){.site-header .inner{gap:.75rem;padding:.875rem}.site-header .brand h1{display:none}.site-header .brand .logo{height:28px;width:28px}.site-header .status{gap:.5rem}.site-header .badge{font-size:.6875rem;padding:.25rem .5rem}.site-header .btn{font-size:.8125rem;padding:.5rem .75rem}}.btn:focus-visible,button:focus-visible{box-shadow:0 0 0 3px rgba(59,130,246,.3);outline:none}input:focus-visible{box-shadow:0 0 0 3px rgba(59,130,246,.1);outline:none}#theme-toggle{align-items:center;display:inline-flex;height:42px;justify-content:center;padding:.75rem;width:42px}#theme-toggle i{font-size:1rem;transition:transform var(--transition-fast)}#theme-toggle:hover i{transform:rotate(20deg)}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--border-hover)}@media (min-width:1920px){:root{--chart-h:clamp(146px,18vh,280px)}}