:root{--bg: #070a12;--bg-2: #0c1120;--panel: rgba(255, 255, 255, .035);--border: rgba(255, 255, 255, .08);--text: #eef2fb;--muted: #7d8699;--mono: "JetBrains Mono", ui-monospace, "SF Mono", "Cascadia Mono", Menlo, monospace;--sans: "Inter", -apple-system, "Segoe UI", "PingFang SC", "Microsoft YaHei", system-ui, sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}.gauge-value,.gauge-unit,.metric-value,.net span,.subline{font-variant-numeric:tabular-nums}:focus-visible{outline:2px solid #5ad1c9;outline-offset:3px;border-radius:6px}.app{position:relative;height:100dvh;min-height:0;overflow:hidden;max-width:1040px;margin:0 auto;padding:clamp(16px,2.6vh,40px) clamp(20px,4vw,48px);display:flex;flex-direction:column}.aurora{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;background:radial-gradient(60% 45% at 50% 8%,rgba(90,209,201,.14),transparent 70%),radial-gradient(45% 40% at 85% 30%,rgba(167,139,250,.12),transparent 70%),radial-gradient(50% 45% at 12% 75%,rgba(245,197,99,.08),transparent 70%),linear-gradient(180deg,var(--bg-2),var(--bg))}.aurora:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:radial-gradient(rgba(255,255,255,.025) 1px,transparent 1px);background-size:26px 26px;-webkit-mask-image:radial-gradient(70% 60% at 50% 40%,#000 40%,transparent 100%);mask-image:radial-gradient(70% 60% at 50% 40%,#000 40%,transparent 100%)}.topbar{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap}.brand{display:flex;align-items:center;gap:14px}.logo{font-size:30px;line-height:1;color:#5ad1c9;filter:drop-shadow(0 0 12px rgba(90,209,201,.6))}.brand h1{margin:0;font-size:20px;font-weight:600;letter-spacing:.5px}.brand p{margin:2px 0 0;font-size:12.5px;color:var(--muted)}.net{display:flex;gap:22px}.net span{display:flex;flex-direction:column;font-family:var(--mono);font-size:13px}.net i{font-style:normal;font-size:10.5px;letter-spacing:1px;text-transform:uppercase;color:var(--muted);margin-bottom:3px}.plan{margin-top:22px;display:flex;align-items:stretch;justify-content:space-between;gap:20px;padding:18px 22px;border:1px solid var(--border);border-radius:16px;background:linear-gradient(120deg,#5ad1c917,#a78bfa0f);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.plan-tag{display:block;font-size:10.5px;letter-spacing:2px;text-transform:uppercase;color:var(--muted);margin-bottom:7px}.plan-id{display:flex;flex-direction:column;justify-content:center}.plan-name{margin:0;font-size:21px;font-weight:650;letter-spacing:.3px;line-height:1.15}.plan-rated{flex-shrink:0;display:flex;flex-direction:column;justify-content:center;text-align:right;padding-left:20px;border-left:1px solid var(--border)}.plan-rated-val{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:30px;font-weight:650;line-height:1;background:linear-gradient(135deg,#7ee8df,#5ad1c9);-webkit-background-clip:text;background-clip:text;color:transparent}.plan-rated-val em{font-style:normal;font-size:13px;margin-left:5px;-webkit-text-fill-color:var(--muted);color:var(--muted)}.stage{flex:1;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(14px,2.6vh,34px);padding:clamp(10px,2vh,32px) 0}.gauge-wrap{width:min(340px,78vw,42vh);position:relative}.gauge{width:100%;height:auto;overflow:visible}.gauge-track{fill:none;stroke:#ffffff0f;stroke-width:10;stroke-linecap:round}.gauge-fill{fill:none;stroke-width:10;stroke-linecap:round;transition:opacity .4s ease}.gauge-time{fill:none;stroke-width:2.5;stroke-linecap:round;opacity:.5}.gauge-tip{transition:r .25s ease}.gauge-mark line{stroke:#ffffff8c;stroke-width:2;stroke-linecap:round}.gauge-mark text{fill:#fff9;font-size:9px;letter-spacing:1px;font-family:var(--sans)}.gauge-wrap.waiting .gauge-value{animation:pulse 1.2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.35}50%{opacity:1}}.tick{stroke:#ffffff1a;stroke-width:2;stroke-linecap:round;transition:stroke .3s ease}.tick.on{stroke-width:2.5}.gauge-value{font-family:var(--mono);font-size:58px;font-weight:600;fill:var(--text);letter-spacing:-1px}.gauge-unit{font-family:var(--mono);font-size:15px;fill:var(--muted);letter-spacing:2px}.gauge-label{font-size:12px;fill:var(--muted);letter-spacing:3px;font-weight:500}.gauge-label.strong{font-size:14px;font-weight:700;letter-spacing:2px}.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;width:min(560px,100%)}.metric{background:var(--panel);border:1px solid var(--border);border-radius:16px;padding:16px 18px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:border-color .35s ease,transform .35s ease,box-shadow .35s ease}.metric.active{border-color:color-mix(in srgb,var(--accent) 55%,transparent);box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 30%,transparent),0 10px 40px -12px color-mix(in srgb,var(--accent) 60%,transparent);transform:translateY(-3px)}.metric.done{border-color:color-mix(in srgb,var(--accent) 50%,var(--border));background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 9%,transparent),#ffffff05);box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 22%,transparent),0 12px 34px -18px color-mix(in srgb,var(--accent) 70%,transparent)}.metric.done .metric-value span{color:#fff}.metric-top{display:flex;align-items:center;gap:8px;color:var(--muted)}.metric-icon{display:inline-flex}.metric-label{font-size:12.5px;letter-spacing:1px}.metric-value{margin-top:10px;font-family:var(--mono);display:flex;align-items:baseline;gap:6px}.metric-value span{font-size:30px;font-weight:600}.metric-value em{font-style:normal;font-size:13px;color:var(--muted)}.footer-row{width:min(600px,100%);display:flex;flex-direction:column;align-items:center;gap:12px}.subline{font-family:var(--mono);font-size:12.5px;color:var(--muted);display:flex;align-items:center;gap:8px;flex-wrap:wrap}.subline .grade{font-weight:600;letter-spacing:.5px}.subline .dot{opacity:.4}.subline .err-text{color:#f38ba8;font-weight:600}.subline .done-tag{color:#7ee8df;font-weight:700;letter-spacing:.5px}.action{display:flex;align-items:center;gap:12px}.captcha{display:flex;align-items:center;gap:8px}.cap-img{width:96px;height:36px;border-radius:8px;border:1px solid var(--border);cursor:pointer;display:block;background:#0c1120}.cap-loading{opacity:.4}.cap-input{width:88px;height:40px;border-radius:10px;border:1px solid var(--border);background:#ffffff0a;color:var(--text);font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:17px;letter-spacing:3px;text-align:center;padding:0 8px;outline:none;transition:border-color .2s ease}.cap-input::placeholder{letter-spacing:0;font-size:12px;color:var(--muted)}.cap-input:focus{border-color:#5ad1c9}.captcha.err .cap-input{border-color:#f38ba8}.go{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;cursor:pointer;padding:14px 34px;border-radius:999px;font-family:var(--sans);font-size:15px;font-weight:600;letter-spacing:1px;color:#04110f;background:linear-gradient(135deg,#7ee8df,#5ad1c9);box-shadow:0 10px 34px -10px #5ad1c9b3;transition:transform .2s ease,box-shadow .2s ease,filter .2s ease}.go:hover{transform:translateY(-2px);filter:brightness(1.05)}.go:active{transform:translateY(0)}.go.stop{color:#fff;background:linear-gradient(135deg,#3a4152,#262c3a);box-shadow:0 10px 30px -12px #000c}.credit{text-align:center;font-family:var(--mono);font-size:11px;color:#7d869999;letter-spacing:1px;padding-top:clamp(6px,1.4vh,12px)}.confetti{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;pointer-events:none}.modal-mask{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;align-items:center;justify-content:center;padding:20px;background:#04060ca8;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:fade .18s ease}.modal{width:min(340px,100%);padding:26px 24px 22px;border:1px solid var(--border);border-radius:20px;background:linear-gradient(160deg,#131a2c,#0b0f1c);box-shadow:0 30px 80px -20px #000000d9;text-align:center;animation:pop .2s ease}.modal-title{margin:0;font-size:18px;font-weight:650}.modal-sub{margin:6px 0 18px;font-size:12.5px;color:var(--muted)}.modal-cap{display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:14px}.modal .cap-img{width:150px;height:52px}.cap-refresh{width:38px;height:38px;border-radius:10px;border:1px solid var(--border);background:#ffffff0a;color:var(--muted);font-size:18px;cursor:pointer;transition:color .2s ease,border-color .2s ease}.cap-refresh:hover{color:var(--text);border-color:#5ad1c9}.modal .cap-input{width:100%;height:50px;font-size:22px;letter-spacing:8px}.modal-err{color:#f38ba8;font-size:12.5px;font-weight:600;margin-top:8px}.modal-actions{display:flex;gap:12px;margin-top:18px}.btn-ghost,.btn-primary{flex:1;height:46px;border:none;border-radius:999px;cursor:pointer;font-family:var(--sans);font-size:15px;font-weight:600;transition:transform .15s ease,filter .2s ease,background .2s ease}.btn-ghost{color:var(--text);background:#ffffff0f;border:1px solid var(--border)}.btn-ghost:hover{background:#ffffff1a}.btn-primary{color:#04110f;background:linear-gradient(135deg,#7ee8df,#5ad1c9);box-shadow:0 10px 30px -10px #5ad1c999}.btn-primary:hover{filter:brightness(1.05);transform:translateY(-1px)}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes pop{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}@media (max-width: 640px){.topbar{align-items:flex-start}.net{gap:16px}.net i{font-size:9.5px}.net span{font-size:12px}}@media (max-width: 560px){.app{height:100dvh;min-height:0;padding:16px 16px calc(14px + env(safe-area-inset-bottom));overflow:hidden}.brand p{display:none}.brand h1{font-size:17px}.logo{font-size:24px}.plan{margin-top:12px;padding:12px 16px;gap:14px}.plan-tag{font-size:9.5px;letter-spacing:1.5px;margin-bottom:4px}.plan-name{font-size:16px}.plan-rated{padding-left:14px}.plan-rated-val{font-size:22px}.plan-rated-val em{font-size:11px}.stage{padding:4px 0 0;gap:10px;justify-content:space-between}.gauge-wrap{width:min(64vw,32vh)}.metrics{grid-template-columns:repeat(3,1fr);gap:8px}.metric{padding:11px 12px;border-radius:13px}.metric-top{gap:6px}.metric-label{font-size:11px}.metric-value{margin-top:7px}.metric-value span{font-size:21px}.metric-value em{font-size:11px}.footer-row{gap:10px}.subline{justify-content:center;text-align:center}.action{gap:10px}.go{padding:13px 22px}.credit{display:none}}@media (prefers-reduced-motion: reduce){*{transition-duration:.001ms!important;animation-duration:.001ms!important}.go:hover,.metric.active{transform:none}}
