:root{--bg: #f4f7f9;--bg-2: #eaf0f4;--panel: #ffffff;--panel-2: #f8fafc;--raised: #f1f5f9;--line: #eef2f6;--line-2: #e2e8f0;--line-3: #cbd5e1;--txt: #0f172a;--txt-dim: #64748b;--txt-faint: #94a3b8;--signal: #14b8a6;--signal-2: #0d9488;--signal-soft: rgba(20, 184, 166, .1);--signal-line: rgba(20, 184, 166, .3);--signal-grad: linear-gradient(135deg, #2dd4bf 0%, #14b8a6 50%, #0d9488 100%);--online: #10b981;--leased: #3b82f6;--cooldown: #f59e0b;--offline: #ef4444;--disabled: #94a3b8;--font-display: "Manrope", system-ui, -apple-system, "PingFang SC", "Microsoft YaHei", sans-serif;--font-mono: "JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;--rail-w: 244px;--radius: 12px;--radius-lg: 18px;--radius-pill: 999px;--shadow-card: 0 1px 2px rgba(15, 23, 42, .04), 0 10px 28px -16px rgba(15, 23, 42, .16);--shadow-card-hover: 0 6px 16px rgba(15, 23, 42, .06), 0 20px 44px -18px rgba(15, 23, 42, .22);--shadow-glow: 0 10px 26px -8px rgba(20, 184, 166, .5);--ease: cubic-bezier(.22, 1, .36, 1)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--txt);font-family:var(--font-display);font-size:14px;line-height:1.55;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}.bg-field{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;background:radial-gradient(820px 520px at 8% -8%,rgba(20,184,166,.1),transparent 60%),radial-gradient(760px 620px at 102% 4%,rgba(59,130,246,.07),transparent 55%),linear-gradient(180deg,#f7fafc 0%,var(--bg) 46%,var(--bg-2) 100%)}.bg-grain{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:none;opacity:.022;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}.bg-scan{display:none}.hud-label{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.12em;font-size:11px;font-weight:700;color:var(--txt-faint)}.mono-dim{color:var(--txt-dim)}.mono-faint{color:var(--txt-faint)}.accent{color:var(--signal-2)}.shell{position:relative;z-index:2;display:grid;grid-template-columns:var(--rail-w) 1fr;min-height:100vh}.rail{background:#ffffffb3;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-right:1px solid var(--line-2);display:flex;flex-direction:column;padding:20px 0;position:sticky;top:0;height:100vh}.rail__brand{padding:0 20px 20px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:12px}.brand-mark{width:38px;height:38px;flex:none;border-radius:11px;display:grid;place-items:center;color:#fff;font-family:var(--font-display);font-weight:800;font-size:18px;background:var(--signal-grad);box-shadow:var(--shadow-glow)}.brand-word{font-family:var(--font-display);font-weight:800;letter-spacing:-.01em;font-size:17px;color:var(--txt)}.brand-sub{font-size:10px;letter-spacing:.16em;color:var(--txt-faint);text-transform:uppercase;font-weight:600}.rail__nav{padding:16px 12px;display:flex;flex-direction:column;gap:4px;flex:1}.nav-item{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:var(--radius);color:var(--txt-dim);text-decoration:none;font-family:var(--font-display);font-size:13.5px;font-weight:600;transition:all .18s var(--ease)}.nav-item:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--line-3);flex:none;transition:all .18s}.nav-item:hover{color:var(--txt);background:var(--panel-2)}.nav-item.is-active{color:var(--signal-2);background:var(--signal-soft)}.nav-item.is-active:before{background:var(--signal);box-shadow:0 0 0 4px var(--signal-soft)}.rail__foot{padding:14px 16px 0;margin-top:auto;border-top:1px solid var(--line)}.main{min-width:0}.topbar{height:62px;border-bottom:1px solid var(--line-2);display:flex;align-items:center;justify-content:space-between;padding:0 28px;background:#ffffffb8;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);position:sticky;top:0;z-index:5}.topbar__title{font-family:var(--font-display);font-weight:800;letter-spacing:-.01em;font-size:18px}.topbar__meta{display:flex;align-items:center;gap:18px}.clock{font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--txt-dim);font-size:12.5px}.live{display:inline-flex;align-items:center;gap:7px;font-family:var(--font-display);font-size:11px;letter-spacing:.08em;text-transform:uppercase;font-weight:700;color:var(--signal-2);background:var(--signal-soft);padding:5px 11px;border-radius:var(--radius-pill)}.live__dot{width:7px;height:7px;border-radius:50%;background:var(--signal);animation:pulse 1.8s var(--ease) infinite}.view{padding:30px;max-width:1320px}.view__head{margin-bottom:24px}.view__head h1{font-family:var(--font-display);font-weight:800;font-size:25px;letter-spacing:-.02em;margin:0 0 5px}.view__head p{margin:0;color:var(--txt-dim);font-size:13.5px}.panel{background:var(--panel);border:1px solid var(--line-2);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);position:relative}.panel__head{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--line)}.panel__body{padding:20px}.ticks:before,.ticks:after{content:none}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(184px,1fr));gap:16px}.kpi{position:relative;overflow:hidden;background:var(--panel);border:1px solid var(--line-2);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:18px 20px 16px;opacity:0;transform:translateY(12px);animation:reveal .6s var(--ease) forwards;animation-delay:calc(var(--i, 0) * 55ms);transition:box-shadow .22s var(--ease),transform .22s var(--ease)}.kpi:hover{box-shadow:var(--shadow-card-hover);transform:translateY(-2px)}.kpi__label{display:flex;align-items:center;gap:8px;margin-bottom:12px}.kpi__value{font-family:var(--font-display);font-weight:800;font-size:34px;line-height:1;font-variant-numeric:tabular-nums;letter-spacing:-.03em;color:var(--txt)}.kpi__bar{margin-top:14px;height:6px;background:var(--raised);border-radius:var(--radius-pill);overflow:hidden}.kpi__bar>i{display:block;height:100%;border-radius:var(--radius-pill);background:var(--accent-c, var(--signal));transition:width .8s var(--ease)}.kpi--hero{grid-column:span 2;background:var(--signal-grad);border:none;color:#fff}.kpi--hero .kpi__value,.kpi--hero .hud-label{color:#fff}.kpi--hero .hud-label{opacity:.85}.kpi--hero .kpi__bar{background:#ffffff40}.kpi--hero .kpi__bar>i{background:#ffffffe6}.led{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--disabled);flex:none}.led--live{animation:pulse 2s var(--ease) infinite}.led--online{background:var(--online);box-shadow:0 0 0 3px #10b98129}.led--leased{background:var(--leased);box-shadow:0 0 0 3px #3b82f629}.led--cooldown{background:var(--cooldown);box-shadow:0 0 0 3px #f59e0b29}.led--offline{background:var(--offline);box-shadow:0 0 0 3px #ef444429}.led--signal{background:var(--signal);box-shadow:0 0 0 3px var(--signal-soft)}.badge{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-display);font-size:11.5px;font-weight:700;letter-spacing:.01em;padding:4px 11px;border-radius:var(--radius-pill);color:var(--txt-dim);background:var(--raised);white-space:nowrap}.badge--online{color:#047857;background:#ecfdf5}.badge--offline{color:#b91c1c;background:#fef2f2}.badge--leased{color:#1d4ed8;background:#eff6ff}.badge--cooldown{color:#b45309;background:#fffbeb}.badge--signal{color:var(--signal-2);background:var(--signal-soft)}.chip{font-family:var(--font-mono);font-size:11.5px;padding:3px 9px;border-radius:8px;color:var(--txt-dim);background:var(--raised)}.btn{font-family:var(--font-display);font-size:13px;font-weight:700;letter-spacing:.01em;padding:9px 16px;border-radius:var(--radius);cursor:pointer;border:1px solid var(--line-2);background:var(--panel);color:var(--txt);transition:all .16s var(--ease)}.btn:hover{border-color:var(--line-3);box-shadow:var(--shadow-card);transform:translateY(-1px)}.btn:active{transform:translateY(0) scale(.98)}.btn--primary{background:var(--signal-grad);border:none;color:#fff;box-shadow:0 6px 16px -8px #14b8a699}.btn--primary:hover{box-shadow:var(--shadow-glow)}.btn--soft{background:var(--signal-soft);border-color:var(--signal-line);color:var(--signal-2)}.btn--soft:hover{background:#14b8a629;border-color:var(--signal)}.btn--ghost{background:transparent}.btn--danger{color:var(--offline);border-color:#fecaca;background:#fff}.btn--danger:hover{background:#fef2f2}.btn--sm{padding:6px 11px;font-size:12px;border-radius:9px}.btn--block{width:100%;display:block;padding:12px}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}.tool-card{background:var(--panel-2);border:1px solid var(--line-2);border-radius:14px;padding:16px;display:flex;flex-direction:column}.tool-card__title{font-family:var(--font-display);font-weight:800;font-size:14px;color:var(--txt)}.tool-card__desc{font-size:12px;color:var(--txt-faint);margin:4px 0 0}.tool-card__body{flex:1;margin:12px 0;display:flex;flex-direction:column}.tool-card__hint{flex:1;min-height:90px;display:flex;align-items:center;justify-content:center;border:1px dashed var(--line-2);border-radius:10px;color:var(--txt-faint);font-size:12px}.tool-card__out{background:var(--panel);border:1px solid var(--line-2);border-radius:10px;padding:10px 12px;font-family:var(--font-mono);font-size:11.5px;white-space:pre-wrap;word-break:break-all;max-height:240px;overflow-y:auto;margin:0}.tool-card__out+.tool-card__out{margin-top:10px}.field{margin-bottom:16px}.field label{display:block;margin-bottom:8px}.input{width:100%;padding:12px 14px;border-radius:var(--radius);background:var(--panel);border:1px solid var(--line-2);color:var(--txt);font-family:var(--font-display);font-size:14px;outline:none;transition:all .16s var(--ease)}.input::placeholder{color:var(--txt-faint)}.input:focus{border-color:var(--signal);box-shadow:0 0 0 4px var(--signal-soft)}.tbl-wrap{overflow-x:auto;border:1px solid var(--line-2);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);background:var(--panel)}.tbl{width:100%;border-collapse:collapse;font-size:13px}.tbl thead th{text-align:left;padding:13px 18px;font-family:var(--font-display);font-size:11px;letter-spacing:.06em;text-transform:uppercase;font-weight:700;color:var(--txt-faint);border-bottom:1px solid var(--line-2);background:var(--panel-2);white-space:nowrap}.tbl tbody td{padding:14px 18px;border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums;white-space:nowrap}.tbl tbody tr{transition:background .14s}.tbl tbody tr:hover{background:var(--signal-soft)}.tbl tbody tr:last-child td{border-bottom:none}.cell-id{color:var(--signal-2);font-weight:700;font-family:var(--font-mono)}.cell-mono{color:var(--txt-dim);font-family:var(--font-mono)}.toolbar{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:16px;align-items:center}.seg{display:inline-flex;border:1px solid var(--line-2);border-radius:var(--radius);overflow:hidden;background:var(--panel);box-shadow:var(--shadow-card)}.seg button{font-family:var(--font-display);font-size:12.5px;font-weight:600;padding:8px 14px;background:transparent;color:var(--txt-dim);border:none;cursor:pointer;border-right:1px solid var(--line);transition:all .15s}.seg button:last-child{border-right:none}.seg button:hover{color:var(--txt);background:var(--panel-2)}.seg button.is-active{color:var(--signal-2);background:var(--signal-soft)}.notice{font-family:var(--font-mono);font-size:12.5px;color:var(--cooldown);padding:8px 0}.notice--err{color:var(--offline)}.auth{position:relative;z-index:2;min-height:100vh;display:grid;place-items:center;padding:24px}.auth__card{width:100%;max-width:400px;background:var(--panel);border:1px solid var(--line-2);border-radius:22px;padding:38px 34px;position:relative;overflow:hidden;box-shadow:0 30px 80px -28px #0f172a4d,var(--shadow-card);animation:reveal .7s var(--ease) forwards}.auth__card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:var(--signal-grad)}.auth__brand{display:flex;align-items:center;gap:12px}.auth__title{font-family:var(--font-display);font-weight:800;font-size:22px;margin:24px 0 5px;letter-spacing:-.02em}.auth__sub{color:var(--txt-dim);font-size:13px;margin-bottom:28px}.auth__foot{margin-top:20px;font-size:12px;color:var(--txt-faint);text-align:center}.auth__foot code{color:var(--signal-2);font-family:var(--font-mono);background:var(--signal-soft);padding:2px 7px;border-radius:6px}.cursor{display:inline-block;width:8px;height:17px;background:var(--signal);margin-left:3px;vertical-align:-3px;border-radius:2px;animation:blink 1.1s steps(1) infinite}.scan{position:relative;z-index:2;min-height:100vh;display:grid;place-items:center;padding:32px}.scan__card{width:100%;max-width:440px;background:var(--panel);border:1px solid var(--line-2);border-radius:22px;padding:36px 32px;box-shadow:var(--shadow-card-hover);animation:reveal .6s var(--ease) forwards}.qr-frame{position:relative;width:220px;height:220px;margin:22px auto 0;padding:12px;border-radius:18px;background:#fff;border:1px solid var(--line-2);box-shadow:inset 0 0 0 1px var(--signal-line),var(--shadow-card)}.qr-frame img{width:100%;height:100%;display:block;image-rendering:pixelated;border-radius:8px}.qr-frame:after{content:"";position:absolute;left:12px;right:12px;top:12px;height:2px;background:linear-gradient(90deg,transparent,var(--signal),transparent);border-radius:2px;box-shadow:0 0 10px var(--signal);animation:scanline 2.6s var(--ease) infinite}.qr-skel{display:grid;place-items:center;color:var(--txt-faint);font-weight:600;font-size:12px}.stepper{display:flex;flex-direction:column;gap:0;margin-top:28px}.step{display:flex;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid var(--line)}.step:last-child{border-bottom:none}.step__label{font-family:var(--font-display);font-size:13.5px;font-weight:600;color:var(--txt)}.step--done .step__label{color:var(--online)}.step--active .step__label{color:var(--signal-2)}.step--idle .step__label{color:var(--txt-faint)}.step--fail .step__label{color:var(--offline)}.result-box{margin-top:24px;padding:18px;border:1px solid var(--line-2);border-radius:var(--radius-lg);background:var(--panel-2)}.kv{display:flex;justify-content:space-between;padding:7px 0;border-bottom:1px dashed var(--line-2)}.kv:last-child{border-bottom:none}.kv__k{color:var(--txt-dim);font-size:12px;font-weight:600}.kv__v{color:var(--txt);font-variant-numeric:tabular-nums;font-family:var(--font-mono);font-size:13px}@keyframes reveal{to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.8)}}@keyframes blink{0%,50%{opacity:1}50.01%,to{opacity:0}}@keyframes scanline{0%{top:12px}50%{top:calc(100% - 14px)}to{top:12px}}@media(max-width:860px){.shell{grid-template-columns:1fr}.rail{position:relative;height:auto;flex-direction:row;align-items:center;overflow-x:auto}.rail__nav{flex-direction:row}.rail__foot{margin-top:0;border-top:none}.kpi--hero{grid-column:span 1}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body{-webkit-tap-highlight-color:transparent;overflow-wrap:break-word}img,svg,canvas,video{max-width:100%}button,.btn,a,.nav-item{touch-action:manipulation}.shell,.scan,.auth,.rail,.topbar{padding-left:max(env(safe-area-inset-left),0px);padding-right:max(env(safe-area-inset-right),0px)}@media(max-width:920px){.shell{grid-template-columns:1fr}.rail{position:sticky;top:0;z-index:20;height:auto;width:auto;flex-direction:row;align-items:center;gap:12px;padding:10px 14px;border-right:none;border-bottom:1px solid var(--line-2);overflow-x:auto}.rail__brand{padding:0;border-bottom:none;flex:none}.brand-sub{display:none}.rail__nav{flex-direction:row;padding:0;gap:4px;flex:1;overflow-x:auto}.nav-item{white-space:nowrap;padding:8px 12px}.rail__foot{flex:none;display:flex;align-items:center;gap:8px;padding:0;margin:0;border-top:none}.rail__foot>div{display:none}.rail__foot .btn--block{width:auto}.view{padding:18px 14px}.topbar{padding:0 16px}}@media(max-width:600px){.view{padding:12px 10px}.panel__body{padding:14px}.panel__head{padding:14px 16px}.view__head h1{font-size:20px}.kpi-grid{grid-template-columns:repeat(2,1fr)}.scan,.auth{padding:16px 12px}.auth__card{padding:24px 20px}.topbar__title{font-size:16px}.clock{display:none}.input,.input--sm{font-size:16px}}@media(max-width:380px){.kpi-grid{grid-template-columns:1fr}}
