*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{color:#f5f5f7;-webkit-font-smoothing:antialiased;background:#16181d;font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,Segoe UI,Roboto,sans-serif}.tv{flex-direction:column;gap:clamp(10px,1.2vh,18px);height:100%;padding:clamp(10px,1.1vh,16px) clamp(16px,2.2vw,36px);display:flex;overflow:hidden}.tv.is-idle{cursor:none}.tv-summary{flex:none;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:clamp(16px,2vw,48px);display:grid}.sum-table{flex-direction:column;min-width:0;display:flex}.sum-row{--status:#48484a;grid-template-columns:minmax(0,1.3fr) repeat(4,minmax(0,1fr));align-items:baseline;gap:clamp(12px,1.4vw,32px);padding:clamp(4px,.55vh,10px) 0;display:grid}.sum-row+.sum-row:not(.sum-head){border-top:1px solid #262a31}.sum-row.status-good{--status:#30d158}.sum-row.status-warn{--status:#ffd60a}.sum-row.status-danger{--status:#ff453a}.sum-head{color:#7a7d85;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;padding-top:0;font-size:clamp(10px,.66vw,17px);font-weight:700}.sum-name{color:#e5e5ea;white-space:nowrap;align-items:center;gap:.6em;min-width:0;font-size:clamp(15px,1.15vw,30px);font-weight:700;display:flex;overflow:hidden}.sum-dot{background:var(--status);width:.55em;height:.55em;box-shadow:0 0 .6em var(--status);border-radius:999px;flex:none}.server-warning{color:#ff9f0a;text-overflow:ellipsis;font-size:.6em;font-weight:600;overflow:hidden}.sum-note{color:#86868b;grid-column:2/-1;font-size:clamp(13px,.9vw,24px);font-weight:600}.sum-cell{white-space:nowrap;align-items:baseline;min-width:0;display:flex}.sum-value{color:#f5f5f7;letter-spacing:-.03em;font-size:clamp(18px,1.4vw,42px);font-weight:650;line-height:1}.sum-unit{color:#7a7d85;margin-left:.1em;font-size:clamp(11px,.8vw,22px);font-weight:600}.sum-detail{color:#7a7d85;font-variant-numeric:tabular-nums;text-overflow:ellipsis;margin-left:.7em;font-size:clamp(10px,.72vw,19px);font-weight:600;overflow:hidden}.sum-cell .sum-value{color:#e5e5ea}.sum-row .sum-cell.is-alert .sum-value{color:#ff7a70}.clock-card{text-align:right;border-left:1px solid #262a31;flex-direction:column;justify-content:center;align-items:flex-end;padding-left:clamp(16px,2vw,48px);display:flex}.clock-kicker{color:#5d6068;letter-spacing:.12em;text-transform:uppercase;margin-bottom:4px;font-size:clamp(9px,.58vw,15px);font-weight:700}.digital-clock{color:#f5f5f7;font-variant-numeric:tabular-nums;letter-spacing:.02em;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:clamp(20px,1.6vw,48px);font-weight:600}.refresh-age{color:#7a7d85;white-space:nowrap;align-items:center;gap:7px;margin-top:8px;font-size:clamp(9px,.6vw,17px);font-weight:600;display:flex}.refresh-age:before{content:"";background:#30d158;border-radius:999px;flex:none;width:7px;height:7px;box-shadow:0 0 10px #30d15873}.refresh-age.is-failed{color:#ff9f0a}.refresh-age.is-failed:before{background:#ff9f0a;box-shadow:0 0 10px #ff9f0a73}.panels{flex:1;grid-template-columns:repeat(5,minmax(0,1fr));gap:clamp(8px,.7vw,18px);min-height:0;display:grid}.panel{background:#1d2027;border:1px solid #272b33;border-radius:clamp(12px,.9vw,22px);flex-direction:column;min-width:0;min-height:0;padding:0 clamp(12px,.9vw,24px);display:flex}.panel-head{border-bottom:1px solid #2b2f38;flex:none;padding:clamp(12px,1.4vh,22px) 0 clamp(10px,1.2vh,18px)}.panel-title{color:#f5f5f7;text-overflow:ellipsis;white-space:nowrap;font-size:clamp(14px,1vw,28px);font-weight:700;overflow:hidden}.panel-hint{color:#7a7d85;white-space:nowrap;margin-top:.2em;font-size:clamp(10px,.7vw,19px);font-weight:500}.panel-list{flex:1;grid-template-rows:repeat(3,minmax(0,1.6fr)) repeat(4,minmax(0,1fr));min-height:0;list-style:none;display:grid}.rank{border-bottom:1px solid #252931;grid-template-columns:minmax(0,1fr) auto;align-content:center;align-items:baseline;gap:.3em 12px;min-height:0;display:grid}.rank:last-child{border-bottom:0}.rank-name{color:#9a9ca3;text-overflow:ellipsis;white-space:nowrap;font-size:clamp(12px,.82vw,23px);font-weight:500;overflow:hidden}.rank-value{color:#9a9ca3;font-variant-numeric:tabular-nums;white-space:nowrap;justify-self:end;font-size:clamp(13px,.9vw,25px);font-weight:600;line-height:1}.rank-meta{color:#6e717a;font-variant-numeric:tabular-nums;white-space:nowrap;grid-column:1;gap:.5em;min-width:0;font-size:clamp(10px,.68vw,18px);font-weight:600;display:flex;overflow:hidden}.rank-meta>span+span:before{content:"·";margin-right:.5em}.rank.is-featured .rank-name{color:#e5e5ea;grid-column:1/-1;font-size:clamp(13px,.95vw,27px);font-weight:600}.rank.is-featured .rank-meta{grid-row:2;align-self:center}.rank.is-featured .rank-value{color:#f5f5f7;grid-area:2/2;font-size:clamp(15px,1.1vw,31px);font-weight:650}.rank.is-featured.is-danger .rank-value{color:#ff7a70}.panel-empty{color:#5d6068;text-align:center;grid-row:1/-1;align-self:center;font-size:clamp(13px,.9vw,24px);font-weight:600}.panel-more{color:#7a7d85;text-align:right;flex:none;padding:clamp(6px,.8vh,12px) 0;font-size:clamp(10px,.68vw,18px);font-weight:600}.tv-number{font-variant-numeric:tabular-nums;display:inline-block}.tv-number.is-changing{animation:.85s cubic-bezier(.16,1,.3,1) number-change}@keyframes number-change{0%{opacity:.45;filter:blur(2px);transform:translateY(.22em)scale(.97)}55%{opacity:1;filter:blur();transform:translateY(-.04em)scale(1.025)}to{opacity:1;filter:blur();transform:translateY(0)scale(1)}}@media (prefers-reduced-motion:reduce){.tv-number.is-changing{animation:none}}@media (width<=900px){.tv{height:auto;min-height:100%;overflow:auto}.tv-summary{grid-template-columns:minmax(0,1fr)}.clock-card{display:none}.panels{grid-template-columns:minmax(0,1fr)}.panel-list{grid-template-rows:none;grid-auto-rows:64px}}.tv-controls{color:#86868b;opacity:0;pointer-events:none;background:#1c1c1eeb;border:1px solid #2c2c2e;border-radius:999px;align-items:center;gap:16px;padding:8px 14px;font-size:13px;display:flex;position:fixed;bottom:18px;left:50%;transform:translate(-50%)}.tv-controls.is-visible{opacity:1;pointer-events:auto}.tv-controls a{color:#f5f5f7;font-weight:600;text-decoration:none}button,.servers a{appearance:none;color:#f5f5f7;height:36px;font:inherit;cursor:pointer;background:#1c1c1e;border:1px solid #2c2c2e;border-radius:10px;justify-content:center;align-items:center;padding:0 14px;font-size:14px;font-weight:600;text-decoration:none;display:inline-flex}button:disabled{opacity:.4;cursor:default}button.primary,.servers a.primary{color:#000;background:#f5f5f7;border-color:#f5f5f7}button.danger{color:#ff453a}button:focus-visible,a:focus-visible,input:focus-visible{outline-offset:2px;outline:2px solid #0a84ff}.servers{max-width:760px;margin:0 auto;padding:48px 16px}.servers-head{justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:28px;display:flex}.servers-head h1{letter-spacing:-.02em;font-size:32px;font-weight:700}.head-actions{gap:8px;display:flex}.servers-head p{color:#86868b;margin-top:6px;font-size:15px}.server-list{background:#09090b;border:1px solid #1d1d1f;border-radius:16px;margin-bottom:24px;list-style:none}.server-list li{justify-content:space-between;align-items:center;gap:16px;padding:16px 18px;display:flex}.server-list li+li{border-top:1px solid #1d1d1f}.server-info{min-width:0}.server-name{font-size:17px;font-weight:600}.server-url{color:#636366;text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:13px;overflow:hidden}.server-actions{flex:none;gap:8px;display:flex}.server-form{background:#09090b;border:1px solid #1d1d1f;border-radius:16px;flex-direction:column;gap:14px;padding:22px;display:flex}.server-form h2{color:#d1d1d6;font-size:18px;font-weight:600}.server-form label{flex-direction:column;gap:6px;display:flex}.server-form label span{color:#86868b;font-size:13px;font-weight:600}.server-form input{color:#f5f5f7;height:40px;font:inherit;background:#000;border:1px solid #2c2c2e;border-radius:10px;padding:0 12px;font-size:15px}.form-actions{flex-wrap:wrap;gap:8px;display:flex}.test-result{color:#86868b;font-size:14px}.test-result.ok{color:#30d158}.test-result.error{color:#ff453a}@media (width<=600px){.servers-head,.server-list li{flex-direction:column;align-items:stretch}}
