:root{--bg:#070b10;--panel:#0d1219;--border:#1a2836;--border-hi:#2a4058;--text:#e8f0f8;--muted:#6b7f94;--dim:#3d4f63;--accent:#00e5b0;--accent-2:#3d9eff;--accent-dim:#00e5b01f;--accent-glow:#00e5b059;--danger:#ff5c7a;--danger-dim:#ff5c7a26;--warning:#ffc857;--success:#3ecf8e;--radius:12px;--radius-sm:8px;--mono:ui-monospace, "Cascadia Code", "SF Mono", Menlo, Consolas, monospace;--sans:"Twemoji Country Flags", -apple-system, BlinkMacSystemFont, "Segoe UI", "Microsoft YaHei", sans-serif}@font-face{font-family:Twemoji Country Flags;src:url(/TwemojiCountryFlags.woff2)format("woff2");unicode-range:U+1F1E6-1F1FF;font-display:swap}*{box-sizing:border-box}html{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}body{background:var(--bg);min-height:100vh;color:var(--text);font:15px/1.5 var(--sans);background-image:radial-gradient(70% 45% at 12% -8%,#00e5b024,#0000 55%),radial-gradient(50% 40% at 95% 0,#3d9eff1a,#0000 50%),linear-gradient(#00e5b00a 1px,#0000 1px),linear-gradient(90deg,#00e5b00a 1px,#0000 1px);background-size:100% 100%,100% 100%,28px 28px,28px 28px;margin:0}main{width:min(1600px,100vw - 32px);margin:20px auto 40px}.mono{font-family:var(--mono)}.muted{color:var(--muted)}.accent{color:var(--accent)}.accent2{color:var(--accent-2)}.site-header{border-bottom:1px solid var(--border);margin-bottom:18px;padding-bottom:14px}.brand{align-items:center;gap:12px;display:flex}.brand h1{font:700 24px/1.2 var(--mono);letter-spacing:-.03em;margin:0}.pulse-dot{background:var(--accent);width:9px;height:9px;box-shadow:0 0 12px var(--accent-glow);border-radius:50%;animation:2.2s ease-in-out infinite pulse}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.55;transform:scale(.92)}}.brand-tag{color:var(--muted);font:500 12px/1.4 var(--mono);letter-spacing:.06em;margin:8px 0 0;padding-left:21px}.logout{margin-left:auto}.tabs{flex-wrap:wrap;gap:6px;margin-bottom:16px;display:flex}.tab{border-radius:var(--radius-sm);min-height:34px;color:var(--muted);border:1px solid var(--border);font:600 13px/1 var(--mono);background:#00000040;padding:0 16px}.tab:hover:not(:disabled){color:var(--text);border-color:var(--border-hi);filter:none;box-shadow:none;transform:none}.tab.active{color:var(--accent);background:var(--accent-dim);border-color:var(--accent)}.panels{gap:16px;display:grid}.panels.single{grid-template-columns:1fr;max-width:920px}@media (width>=980px){.panels:not(.single){grid-template-columns:1fr 1fr;align-items:start}}.hint{color:var(--muted);margin:0 0 14px;font-size:12px;line-height:1.6}.creds-grid{grid-template-columns:1fr 90px;gap:10px 12px;display:grid}.creds-grid label{text-transform:none;letter-spacing:0;color:var(--muted);flex-direction:column;gap:6px;margin:0;font-size:11px;display:flex}.creds-grid label:nth-child(3),.creds-grid label:nth-child(4){grid-column:span 1}.creds-grid input{border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);caret-color:var(--accent);background:#00000059;padding:9px 11px;font-size:13px}.creds-grid input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim);outline:none}.creds-grid input:disabled{opacity:.55}.cmd-label{font:600 11px/1.4 var(--mono);color:var(--accent);letter-spacing:.08em;text-transform:uppercase;margin:14px 0 6px;display:block}.command-head{justify-content:space-between;align-items:end;gap:10px;margin-top:14px;display:flex}.command-head .cmd-label{margin:0 0 6px}.deploy-command{min-height:92px}.deploy-toolbar{flex-wrap:wrap;gap:10px}.modal-box.command-library{flex-direction:column;width:min(760px,100%);max-height:86vh;display:flex}.command-library-head{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px;display:flex}.command-library-head>div{flex-direction:column;gap:4px;display:flex}.command-library-head strong{color:var(--accent);font-size:16px}.command-library-head span{font-size:11px}.command-list{flex-direction:column;gap:10px;padding-right:3px;display:flex;overflow-y:auto}.command-item{border:1px solid var(--border);border-radius:var(--radius-sm);background:#00000047;padding:11px}.command-item-meta{color:var(--dim);align-items:center;gap:8px;font-size:10px;display:flex}.command-item-meta .badge{padding:2px 7px;font-size:9px}.command-item pre{max-height:132px;color:var(--text);white-space:pre-wrap;overflow-wrap:anywhere;background:#05080c;border-radius:6px;margin:8px 0 10px;padding:9px 10px;font-size:11px;line-height:1.5;overflow:auto}.command-item-actions{justify-content:flex-end;gap:7px;display:flex}.terminal{border:1px solid var(--border);border-radius:var(--radius-sm);color:#b8ffd9;white-space:pre-wrap;overflow-wrap:anywhere;background:#05080c;min-height:240px;max-height:52vh;margin:14px 0 0;padding:14px;font-size:12px;line-height:1.5;overflow:auto}.module{border:1px solid var(--border);border-radius:var(--radius);background:linear-gradient(165deg,#111a24eb,#0a0e14fa);min-width:0;padding:18px;position:relative;box-shadow:0 0 0 1px #00e5b00a,0 16px 48px #00000073}.module:before{content:"";border-radius:var(--radius) var(--radius) 0 0;background:linear-gradient(90deg, transparent, var(--accent), var(--accent-2), transparent);opacity:.75;height:2px;position:absolute;top:0;left:0;right:0}.module-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.module-head h2{font:650 17px/1.3 var(--mono);margin:0}.head-actions{align-items:center;gap:8px;display:flex}.tag{font-weight:500}.badge{border:1px solid var(--border-hi);background:var(--accent-dim);color:var(--accent);font:600 11px/1.3 var(--mono);white-space:nowrap;border-radius:999px;padding:3px 10px}.file-bar{border:1px solid var(--border);border-radius:var(--radius-sm);background:#00000040;align-items:center;gap:10px;margin-bottom:8px;padding:8px 12px;display:flex}.file-url{min-width:0;color:var(--accent-2);font:500 11px/1.5 var(--mono);overflow-wrap:anywhere;flex:1;text-decoration:none}.file-url:hover{color:var(--accent)}.alert{border-radius:var(--radius-sm);border:1px solid var(--border);font:500 13px/1.45 var(--mono);margin:8px 0;padding:10px 12px}.alert.error{color:var(--danger);background:var(--danger-dim);border-color:#ff5c7a73}.alert.warning{color:var(--warning);background:#ffc85714;border-color:#ffc85766}.toasts{z-index:2000;flex-direction:column;gap:8px;max-width:min(420px,100vw - 32px);display:flex;position:fixed;top:16px;right:16px}.toast{border-radius:var(--radius-sm);border:1px solid var(--border-hi);font:500 13px/1.45 var(--mono);background:#101822;padding:10px 14px;animation:.2s ease-out slide-in;box-shadow:0 8px 32px #00000080}@keyframes slide-in{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:none}}.toast.success{color:var(--success);border-color:#3ecf8e73}.toast.error{color:var(--danger);border-color:#ff5c7a73}.toast.warning{color:var(--warning);border-color:#ffc85766}.node-list{margin:8px 0 4px;overflow-x:auto}.node-row{border-bottom:1px solid var(--border);grid-template-columns:64px minmax(110px,1.1fr) 62px minmax(110px,1.2fr) 52px minmax(90px,1fr) 96px;align-items:center;gap:8px 10px;min-width:660px;padding:8px 4px;display:grid}.row-actions{justify-content:flex-end;gap:6px;display:flex}.node-row:last-child{border-bottom:0}.node-row:not(.node-row-head):hover{background:#00e5b00a}.node-row-head{color:var(--dim);letter-spacing:.12em;text-transform:uppercase;border-bottom:1px solid var(--border);padding-bottom:8px;font-size:10px;font-weight:700}.node-name{overflow-wrap:anywhere;font-weight:600}.ptype{color:var(--accent-2);text-transform:lowercase;font-size:11px;font-weight:600}.flag{font-family:"Twemoji Country Flags", var(--sans);margin-right:4px}.server{color:var(--accent);overflow-wrap:anywhere;font-size:14px;font-weight:600}.uuid{color:var(--dim);white-space:nowrap;text-overflow:ellipsis;font-size:10px;overflow:hidden}.order-btns{gap:4px;display:flex}.loading-row{padding:14px 0;font-size:13px}button{border-radius:var(--radius-sm);color:#04120e;min-height:38px;font:650 13px/1 var(--mono);letter-spacing:.02em;cursor:pointer;background:linear-gradient(135deg,#00e5b0,#00c896);border:1px solid #0000;padding:0 16px;transition:transform .12s,box-shadow .15s,filter .15s}button:hover:not(:disabled){filter:brightness(1.08);box-shadow:0 0 24px var(--accent-glow);transform:translateY(-1px)}button:active:not(:disabled){transform:translateY(0)}button:disabled{opacity:.45;cursor:not-allowed}button.ghost{min-height:32px;color:var(--accent);border:1px solid var(--border-hi);background:#00e5b00f;padding:0 12px;font-size:12px}button.ghost:hover:not(:disabled){border-color:var(--accent);box-shadow:0 0 14px var(--accent-dim);filter:none;background:#00e5b01f;transform:none}button.danger{color:#fff;background:linear-gradient(135deg,#ff6b85,#e84560)}button.danger:hover:not(:disabled){box-shadow:0 0 20px var(--danger-dim)}button.sm{min-width:32px;min-height:28px;padding:0 8px;font-size:12px}label{font:600 12px/1.4 var(--mono);color:var(--accent);letter-spacing:.08em;text-transform:uppercase;margin:14px 0 8px;display:block}textarea{border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;color:var(--text);font:13px/1.5 var(--mono);resize:vertical;caret-color:var(--accent);background:#00000059;padding:12px}textarea::placeholder{color:var(--dim)}textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim);outline:none}textarea:disabled{opacity:.5}.toolbar{justify-content:flex-end;margin-top:12px;display:flex}@media (width<=620px){.command-head{flex-direction:column;align-items:stretch}.command-head .cmd-label{margin-bottom:0}.command-head button{align-self:flex-start;min-height:40px}.deploy-toolbar button{flex:220px}.deploy-command,.creds-grid input{font-size:16px}.command-library button.sm{min-height:40px;padding-inline:12px}}.editor-head{border:1px solid var(--border);border-radius:var(--radius-sm);background:#00000040;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;padding:8px 10px;font-size:12px;display:flex}.editor-actions{gap:8px;display:flex}.clash-editor{min-height:min(62vh,640px)}.modal{z-index:1000;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#04080cc7;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal-box{border-radius:var(--radius);border:1px solid var(--border-hi);background:linear-gradient(165deg,#141c26,#0c1016);width:min(420px,100%);padding:22px;box-shadow:0 0 0 1px #00e5b01a,0 24px 64px #0009}.modal-box p{font:500 14px/1.55 var(--mono);margin:0 0 18px}.modal-actions{justify-content:flex-end;gap:10px;margin-top:16px;display:flex}.remark-input{border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;color:var(--text);caret-color:var(--accent);background:#00000059;padding:11px 12px;font-size:14px}.remark-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim);outline:none}.preview-box{flex-direction:column;width:min(860px,100%);max-height:86vh;display:flex}.preview-head{justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;font-size:13px;display:flex}.preview-box pre{border:1px solid var(--border);border-radius:var(--radius-sm);font:12px/1.5 var(--mono);white-space:pre-wrap;overflow-wrap:anywhere;background:#00000059;flex:1;margin:0;padding:14px;overflow:auto}.center-screen{justify-content:center;align-items:center;min-height:100vh;padding:16px;display:flex}.login-box{border-radius:var(--radius);border:1px solid var(--border);background:linear-gradient(165deg,#111a24eb,#0a0e14fa);flex-direction:column;gap:14px;width:min(360px,100%);padding:28px;display:flex;box-shadow:0 0 0 1px #00e5b00f,0 24px 64px #0000008c}.login-box h1{font:700 22px/1.2 var(--mono);margin:0}.login-box p{margin:0;font-size:13px}.login-box input{border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font:14px/1.4 var(--mono);caret-color:var(--accent);background:#00000059;padding:11px 12px}.login-box input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim);outline:none}.login-error{color:var(--danger);font:500 12px/1.5 var(--mono)}::-webkit-scrollbar{width:7px;height:7px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-hi);border-radius:4px}
