/* ===== hud-circular · 环形仪表 HUD ===== */
:root{--void:#06121a;--panel:#0a1e2a;--panel2:#0e2735;--line:rgba(0,212,255,.2);--line2:rgba(0,212,255,.42);--ink:#d6f4ff;--sub:#75a6b8;--dim:#456978;--cyan:#00d4ff;--amber:#ffb648;--mono:ui-monospace,"SF Mono","JetBrains Mono",Consolas,monospace;--sans:-apple-system,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;--maxw:1020px;color-scheme:dark;}
@media (prefers-color-scheme:light){:root{--void:#eaf6fa;--panel:#ffffff;--panel2:#eef7fb;--line:rgba(10,110,150,.18);--line2:rgba(10,110,150,.42);--ink:#062430;--sub:#3a6678;--dim:#86a8b6;--cyan:#0892c0;--amber:#cc7a14;color-scheme:light;}}
*{box-sizing:border-box;margin:0;padding:0;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
body{font-family:var(--sans);background:var(--void);color:var(--ink);line-height:1.6;min-height:100vh;position:relative;padding:0 clamp(14px,4vw,34px) calc(40px + env(safe-area-inset-bottom));}
a{color:inherit;text-decoration:none;}::selection{background:var(--cyan);color:var(--void);}
kbd{font-family:var(--mono);font-size:11.5px;border:1px solid var(--line2);padding:1px 6px;color:var(--amber);}
.orbit{position:fixed;inset:0;z-index:-1;opacity:.4;background:radial-gradient(closest-side,transparent 38%,var(--line) 39%,transparent 40%) 50% 30%/420px 420px no-repeat,radial-gradient(closest-side,transparent 48%,var(--line) 49%,transparent 50%) 50% 30%/620px 620px no-repeat,radial-gradient(60% 40% at 50% 0%,color-mix(in srgb,var(--cyan) 10%,transparent),transparent),var(--void);}
.frame{max-width:var(--maxw);margin:0 auto;}
.sysbar{display:flex;align-items:center;gap:14px;font-family:var(--mono);padding:calc(12px + env(safe-area-inset-top)) 0 12px;border-bottom:1px solid var(--line2);}
.sys-tag{background:var(--cyan);color:var(--void);font-size:11px;font-weight:700;padding:3px 9px;flex:none;}
.sysbar p{flex:1;font-size:12px;color:var(--sub);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.sys-clk{font-size:12.5px;color:var(--cyan);flex:none;}
.bar{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:18px 0;border-bottom:1px solid var(--line);}
.node{display:flex;align-items:center;gap:11px;font-size:clamp(17px,4vw,23px);font-weight:700;text-transform:uppercase;letter-spacing:-.01em;}
.node-ring{width:20px;height:20px;border-radius:50%;border:2px solid var(--cyan);box-shadow:0 0 10px var(--cyan),inset 0 0 0 3px transparent;flex:none;position:relative;}
.node-ring::after{content:"";position:absolute;inset:5px;border-radius:50%;background:var(--cyan);}
.op{font-family:var(--mono);font-size:12px;background:transparent;border:1px solid var(--line2);color:var(--cyan);padding:7px 13px;cursor:pointer;transition:.18s;}
.op:hover{background:var(--cyan);color:var(--void);}
section{margin-top:clamp(28px,5vw,48px);}
.hero{}
.rd{font-family:var(--mono);font-size:12px;letter-spacing:.1em;color:var(--cyan);margin-bottom:16px;}
.hero h1{font-size:clamp(34px,10vw,80px);font-weight:800;line-height:.98;letter-spacing:-.02em;text-transform:uppercase;word-break:break-word;text-shadow:0 0 30px color-mix(in srgb,var(--cyan) 30%,transparent);}
.hero-p{font-family:var(--mono);margin-top:18px;max-width:64ch;color:var(--sub);font-size:13.5px;}
.dialbox{display:grid;grid-template-columns:auto 1fr;gap:clamp(18px,4vw,34px);align-items:center;background:var(--panel);border:1px solid var(--line2);padding:clamp(22px,4vw,34px);}
.gauge{position:relative;width:clamp(110px,24vw,150px);aspect-ratio:1;flex:none;}
.gauge svg{width:100%;height:100%;}
.gauge-v{position:absolute;inset:0;display:grid;place-items:center;font-family:var(--mono);font-weight:800;font-size:clamp(20px,5vw,28px);color:var(--cyan);}
.dial-body{min-width:0;}
.db-top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;font-family:var(--mono);}
.db-key{font-size:12px;color:var(--dim);}
.db-live{display:inline-flex;align-items:center;gap:7px;font-size:12px;color:var(--cyan);}
.db-live i{width:7px;height:7px;border-radius:999px;background:var(--cyan);box-shadow:0 0 8px var(--cyan);animation:bl 2.2s steps(1) infinite;}@keyframes bl{50%{opacity:.3;}}
.db-domain{font-family:var(--mono);font-size:clamp(20px,5.5vw,40px);font-weight:700;margin:14px 0 18px;word-break:break-all;color:var(--ink);}
.db-act{display:flex;flex-wrap:wrap;align-items:center;gap:12px;font-family:var(--mono);}
.cmd{font-family:var(--mono);font-size:13.5px;font-weight:600;padding:11px 22px;cursor:pointer;border:1px solid var(--line2);transition:.18s;}
.cmd-go{background:var(--cyan);color:var(--void);border-color:var(--cyan);}.cmd-go:hover{box-shadow:0 0 18px -2px var(--cyan);}
.cmd-cp{background:transparent;color:var(--ink);}.cmd-cp:hover{border-color:var(--amber);color:var(--amber);}
.db-save{margin-left:auto;font-size:12px;color:var(--sub);cursor:pointer;}.db-save:hover{color:var(--cyan);}
.mod-h{display:flex;align-items:center;gap:14px;font-size:clamp(18px,4vw,26px);font-weight:700;text-transform:uppercase;letter-spacing:-.01em;margin-bottom:22px;}
.mod-no{font-family:var(--mono);font-size:14px;color:var(--cyan);border:1px solid var(--line2);padding:2px 9px;}
.mod-rule{flex:1;height:1px;background:repeating-linear-gradient(90deg,var(--line2) 0 8px,transparent 8px 14px);}
.rows{display:grid;gap:11px;}
.row{display:flex;align-items:center;gap:14px;background:var(--panel);border:1px solid var(--line);padding:14px 18px;font-family:var(--mono);transition:.18s;}
.row:hover{border-color:var(--line2);transform:translateX(4px);}
.row-id{font-size:12px;color:var(--cyan);}.row-h{flex:1;font-size:clamp(13px,3.2vw,16px);word-break:break-all;}
.row-ok{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:var(--sub);}
.row-ok i{width:6px;height:6px;border-radius:999px;background:var(--cyan);box-shadow:0 0 6px var(--cyan);}
.row-cp{font-family:var(--mono);font-size:11.5px;background:transparent;border:1px solid var(--line2);color:var(--ink);padding:6px 13px;cursor:pointer;transition:.18s;}
.row-cp:hover{background:var(--cyan);color:var(--void);border-color:var(--cyan);}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;}
.card{background:var(--panel);border:1px solid var(--line);padding:22px;}
.card-id{font-family:var(--mono);font-size:12px;color:var(--amber);display:block;margin-bottom:10px;}
.card b{display:block;margin-bottom:7px;}.card p{color:var(--sub);font-size:13px;}
.alert{font-family:var(--mono);margin-top:16px;border:1px solid var(--line2);border-left:4px solid var(--amber);padding:14px 18px;color:var(--sub);font-size:12.5px;}.alert strong{color:var(--cyan);}
.comms{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;}
.comm{display:flex;flex-direction:column;gap:8px;background:var(--panel);border:1px solid var(--line);padding:22px;cursor:pointer;font-family:var(--mono);transition:.18s;}
.comm:hover{border-color:var(--cyan);box-shadow:0 0 22px -12px var(--cyan);}
.comm-k{font-size:11.5px;letter-spacing:.06em;color:var(--dim);}.comm-v{font-size:15px;color:var(--ink);word-break:break-all;}
.tail{margin-top:clamp(40px,7vw,64px);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px;padding:18px 0 calc(8px + env(safe-area-inset-bottom));border-top:1px solid var(--line2);font-family:var(--mono);}
.tail-id{font-size:13px;color:var(--cyan);}
.tail nav{display:flex;flex-wrap:wrap;gap:16px;}.tail nav a{color:var(--sub);font-size:12px;transition:.18s;}.tail nav a:hover{color:var(--cyan);}
.tail small{color:var(--dim);font-size:12px;width:100%;}
.toast{position:fixed;left:50%;bottom:calc(24px + env(safe-area-inset-bottom));transform:translate(-50%,16px);z-index:60;opacity:0;pointer-events:none;font-family:var(--mono);background:var(--panel);border:1px solid var(--cyan);padding:11px 18px;font-size:13px;color:var(--ink);box-shadow:0 0 24px -6px var(--cyan);transition:.26s cubic-bezier(.2,.8,.2,1);}
.toast span[aria-hidden]{color:var(--cyan);}.toast.on{opacity:1;transform:translate(-50%,0);pointer-events:auto;}
.in{opacity:0;transform:translateY(16px);transition:opacity .55s ease,transform .55s cubic-bezier(.2,.8,.2,1);}.in.on{opacity:1;transform:none;}
@media (max-width:680px){.dialbox{grid-template-columns:1fr;justify-items:center;text-align:center;}.db-act{justify-content:center;}.db-save{margin-left:0;}}
@media (max-width:760px){.cards,.comms{grid-template-columns:1fr;}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important;}.in{opacity:1;transform:none;}}
