@font-face{font-family:'DM Sans';src:url('fonts/dm-sans.woff2') format('woff2');font-style:normal;font-weight:100 900;font-display:swap}@font-face{font-family:Manrope;src:url('fonts/manrope.woff2') format('woff2');font-style:normal;font-weight:200 800;font-display:swap}
:root{--green:#17845c;--mint:#eaf5ef;--ink:#1f2925;--muted:#818b85;--border:#e7ebe8;--bg:#f7f9f7;--white:#fff}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px 'DM Sans',sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}button,a,input,select,textarea{outline-offset:4px}button{color:inherit}a{color:var(--green)}svg{vertical-align:middle}aside{position:fixed;inset:0 auto 0 0;width:232px;background:#fff;border-right:1px solid var(--border);display:flex;flex-direction:column;padding:28px 18px 16px;z-index:20}.brand{display:flex;align-items:center;gap:10px;padding:0 12px;font:800 22px Manrope,sans-serif;letter-spacing:-1px}.brandmark{background:var(--green);color:white;width:33px;height:36px;border-radius:11px;display:grid;place-items:center;transform:rotate(-7deg)}.brandmark svg{transform:rotate(7deg)}.worksp{margin:31px 6px 25px;border:1px solid var(--border);border-radius:8px;padding:12px;display:flex;align-items:center;gap:11px}.worksp .box{display:grid;place-items:center;background:#f0f4f1;color:#607166;width:32px;height:32px;border-radius:6px}.worksp small{font-size:10px;color:var(--muted);display:block;margin-top:3px}.navlabel{font-size:10px;font-weight:600;letter-spacing:1.25px;color:#9ba39e;padding:0 14px;margin:5px 0 10px}.nav{display:flex;gap:12px;align-items:center;border:0;background:none;width:100%;text-align:left;padding:11px 14px;border-radius:7px;margin:3px 0;color:#6f7973;font-weight:500}.nav:hover{background:#f5f7f5}.nav.active{background:#eaf5ef;color:var(--green);font-weight:650}.nav .count{margin-left:auto;background:white;border-radius:4px;padding:1px 6px;font-size:11px;color:#6b7b70}.nav.spacer{margin-top:24px}.sidebarbottom{margin-top:auto}.engine{border:1px solid var(--border);border-radius:9px;padding:14px;margin:28px 5px 15px}.engine .line{display:flex;align-items:center;gap:7px;font-size:12px}.engine small{font-size:10px;color:#929b95}.engine p{font-size:11px;color:#87938b;margin:10px 0 0;display:flex;justify-content:space-between}.user{border-top:1px solid var(--border);padding:17px 8px 0;display:flex;align-items:center;gap:10px}.avatar{width:33px;height:33px;border-radius:50%;background:#e7eeea;color:#617768;display:grid;place-items:center;font-size:11px;font-weight:650}.user small{color:var(--muted);display:block;font-size:10px;margin-top:3px}.shell{margin-left:232px}header{height:76px;border-bottom:1px solid var(--border);background:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 36px}.crumb{display:flex;align-items:center;gap:14px;font-size:12px;color:#8a938e}.crumb strong{color:#46524a;font-weight:500}.headright{display:flex;align-items:center;gap:20px}.headright .badge{font-size:11px}.iconbtn{background:none;border:0;color:#7f8b83;padding:6px}.headright .divider{height:20px;width:1px;background:var(--border)}main{padding:30px 36px 20px;max-width:1680px;margin:auto}.pagehead{display:flex;justify-content:space-between;align-items:center;margin-bottom:27px}.eyebrow{font-size:11px;color:var(--muted);margin-bottom:7px}.pagehead h1{font:750 27px Manrope,sans-serif;letter-spacing:-.85px;margin:0 0 8px}.pagehead p{margin:0;color:var(--muted);font-size:12px}.actions{display:flex;align-items:center;gap:10px}.btn{background:#fff;border:1px solid #dfe6e1;border-radius:7px;padding:9px 13px;font-size:12px;font-weight:550;display:inline-flex;gap:7px;align-items:center;justify-content:center;white-space:nowrap}.btn:hover{background:#f0f6f2}.btn.primary{background:var(--green);border-color:var(--green);color:#fff;box-shadow:0 2px 3px #16845b17}.btn.primary:hover{background:#126b4a}.btn.danger{color:#c55951}.btn.small{font-size:11px;padding:7px 10px}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:17px;margin-bottom:22px}.card{background:white;border:1px solid var(--border);border-radius:10px;overflow:hidden;box-shadow:0 2px 3px #1c3e2002}.metric{padding:19px 20px;position:relative;min-height:139px}.metriclabel{display:flex;align-items:center;gap:8px;font-size:12px;color:#7c887f}.metriclabel svg{color:#909d94}.metricvalue{font:750 29px Manrope,sans-serif;letter-spacing:-1px;margin-top:14px}.metricvalue small{font-size:14px;font-weight:500;color:#89958d;letter-spacing:0;margin-left:5px}.metricfoot{font-size:10px;color:#89958d;margin-top:11px}.metricfoot b{font-weight:550;color:var(--green);margin-right:7px}.spark{position:absolute;right:19px;bottom:40px;width:81px;height:34px}.maingrid{display:grid;grid-template-columns:minmax(0,1.95fr) minmax(260px,1fr);gap:20px;margin-bottom:22px}.cardhead{padding:19px 21px;display:flex;align-items:center;justify-content:space-between}.cardhead h2{font-size:13px;font-weight:650;margin:0}.cardhead p{font-size:10px;color:var(--muted);margin:5px 0 0}.pill{display:inline-flex;align-items:center;gap:6px;font-size:10px;background:#eef7f1;color:#348460;padding:4px 8px;border-radius:5px;white-space:nowrap}.pill.grey{background:#f2f4f2;color:#818b83}.pill.blue{background:#edf4ff;color:#577aac}.pill.purple{background:#f4effc;color:#9274ad}.pill.orange{background:#fff4e8;color:#bd9555}.dot{height:5px;width:5px;border-radius:50%;display:inline-block;background:#289968;flex-shrink:0}.muted{color:var(--muted)}.legend{display:flex;gap:17px;font-size:10px;color:#7a887e}.legend i{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:6px;background:#329d70}.legend i.light{background:#a1c9b1}.traffichead{padding:0 21px;display:flex;gap:26px}.traffichead span{font-size:10px;color:#8c968f}.traffichead b{display:block;font:700 21px Manrope,sans-serif;margin-top:5px}.traffichead b small{font:400 11px 'DM Sans';color:#8c968f;margin-left:3px}.chartwrap{height:191px;position:relative;margin:20px 20px 4px 14px;padding-left:30px}.yaxis{position:absolute;inset:0 auto 13px 0;display:flex;flex-direction:column;justify-content:space-between;font-size:9px;color:#99a19c;width:30px}.chart{width:100%;height:153px;overflow:visible}.chartdays{display:flex;justify-content:space-between;font-size:9px;color:#99a19c;padding-top:13px}.chartfoot{border-top:1px solid #f0f3f0;padding:12px 21px;display:flex;justify-content:space-between;font-size:10px;color:#9ca59e}.server{padding:0 21px 12px}.serverident{display:flex;gap:12px;align-items:center;padding:0 0 19px}.servericon{width:40px;height:40px;background:#f3f6f3;border:1px solid #e8eee9;border-radius:8px;display:grid;place-items:center;color:#778f7e}.serverident b{font-size:12px}.serverident small{display:block;font-size:10px;color:#919b94;margin-top:5px}.resource{margin:0 0 15px}.resource .line{display:flex;justify-content:space-between;font-size:10px;margin-bottom:8px}.resource .line span{color:#859188}.bar{height:5px;background:#edf1ee;border-radius:4px;overflow:hidden}.bar i{display:block;height:100%;background:#419a74;border-radius:4px}.serverstats{display:flex;justify-content:space-between;border-top:1px solid var(--border);padding-top:16px;margin-top:20px;font-size:10px;color:#869289}.serverstats b{display:block;color:#47584c;font-weight:500;margin-top:6px}.tablehead{padding:19px 21px;display:flex;align-items:center;justify-content:space-between}.tablehead h2{font-size:13px;margin:0;font-weight:650}.tablehead h2 span{font-size:10px;background:#f1f4f1;padding:3px 6px;color:#808e83;border-radius:4px;margin-left:7px}.linkbtn{color:var(--green);background:none;border:0;font-size:11px;padding:3px}.tablewrap{overflow:auto}table{width:100%;border-collapse:collapse;white-space:nowrap}th{text-align:left;font-size:9px;font-weight:500;color:#8b958e;background:#fafbfa;padding:12px 20px;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}td{padding:15px 20px;border-bottom:1px solid #eff2ef;font-size:11px;color:#68776c}td:first-child{color:#3c4a40;font-weight:550}td small{display:block;font-size:9px;color:#9ba59e;font-weight:400;margin-top:4px}.protocol{font-size:9px;font-weight:550;border-radius:4px;padding:4px 7px;background:#eef5fb;color:#6486a3}.protocol.vless{color:#598371;background:#eef7f2}.protocol.hysteria2{color:#9b7caf;background:#f4eff9}.protocol.shadowsocks{color:#ad8a59;background:#faf3e9}.protocol.trojan{color:#7b8caa;background:#eff1f7}.toggle{width:27px;height:15px;border-radius:20px;border:0;background:#279468;padding:2px;display:inline-flex;align-items:center}.toggle:after{content:'';width:11px;height:11px;background:#fff;border-radius:50%;margin-left:auto;box-shadow:0 1px 2px #0001}.toggle.off{background:#d5ded7}.toggle.off:after{margin-left:0}.tablefoot{display:flex;justify-content:space-between;align-items:center;padding:13px 21px;font-size:10px;color:#929d94}.below{display:grid;grid-template-columns:1.3fr 1fr;gap:20px;margin-top:22px}.activity{padding:0 21px 3px}.activityrow{display:flex;align-items:center;gap:11px;padding:12px 0;border-top:1px solid #f0f2ef}.activityicon{width:29px;height:29px;border-radius:7px;background:#f1f6f2;color:#73967d;display:grid;place-items:center}.activityrow b{font-size:11px;font-weight:500}.activityrow small{font-size:9px;color:#98a29b;display:block;margin-top:3px}.activityrow time{margin-left:auto;font-size:9px;color:#9ba59e}.donutbox{display:flex;gap:25px;align-items:center;padding:2px 24px 22px}.donut{width:112px;height:112px;position:relative;border-radius:50%;background:conic-gradient(#2c8c65 0 42%,#8ab89d 42% 70%,#b3c9bb 70% 90%,#dce8df 90%);flex-shrink:0}.donut:before{content:'';position:absolute;inset:14px;border-radius:50%;background:white}.donuttext{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:20px;font-weight:700}.donuttext small{font-size:9px;color:#949e96;font-weight:400;margin-top:4px}.distribution{flex:1}.distribution div{display:flex;justify-content:space-between;margin:12px 0;font-size:10px;color:#77877b}.distribution i{width:6px;height:6px;background:#2c8c65;display:inline-block;border-radius:50%;margin-right:8px}.distribution b{font-weight:500;color:#536758}footer{display:flex;justify-content:space-between;align-items:center;padding:20px 36px 24px;font-size:9px;color:#9ba49d}footer .dot{background:#93a39a;margin-right:6px}footer b{color:#718777;font-weight:550}.sep{margin:0 10px;color:#c4cec6}.search{display:flex;gap:8px;align-items:center;padding:9px 12px;background:white;border:1px solid var(--border);border-radius:7px}.search input{border:0;background:none;outline:none;font-size:11px;width:170px}.toolbar{display:flex;justify-content:space-between;gap:12px;margin-bottom:18px}.tabs{display:flex;gap:5px;padding:4px;background:#edf1ed;border-radius:7px}.tabs button{border:0;background:none;border-radius:5px;padding:7px 11px;font-size:11px;color:#879188}.tabs button.active{background:white;color:#31664c;box-shadow:0 1px 3px #0001}.catalog{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.protocolcard{padding:21px}.protocolcard .protoicon{width:36px;height:36px;border:1px solid #dfeae2;border-radius:9px;display:grid;place-items:center;color:var(--green);margin-bottom:18px}.protocolcard h3{font-size:14px;margin:0}.protocolcard p{font-size:11px;line-height:1.7;color:#87938b;min-height:39px}.protocolcard .roles{display:flex;gap:6px;margin:13px 0 17px}.notice{background:#eff6f1;border:1px solid #dcebe0;border-radius:8px;font-size:11px;color:#60816b;padding:13px 16px;line-height:1.6;margin-bottom:22px;display:flex;gap:10px;align-items:flex-start}.settingsgrid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.settingscard{padding:22px}.settingscard h2{margin:0 0 6px;font-size:14px}.settingscard>p{font-size:11px;color:#89968d;line-height:1.7;margin-bottom:24px}.settingrow{border-top:1px solid var(--border);padding:16px 0;display:flex;justify-content:space-between;align-items:center;gap:15px}.settingrow b{font-size:12px;font-weight:500}.settingrow small{font-size:10px;color:#89968d;display:block;margin-top:5px}.nodegrid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.nodecard{padding:21px}.nodecard h3{font-size:14px;margin:15px 0 7px}.nodecard p{font-size:11px;color:#909c93}.nodecard .line{display:flex;justify-content:space-between;margin:18px 0;font-size:11px}.nodecard .btn{width:100%;margin-top:10px}.empty{padding:45px;text-align:center;color:#8b978e;font-size:12px}.code{background:#f6f8f6;color:#496150;padding:20px;font:11px/1.8 monospace;white-space:pre-wrap;overflow:auto;border-radius:7px;max-height:450px}.subtitle{font-size:11px;color:#8a978f;line-height:1.8}.chips{display:flex;gap:8px;flex-wrap:wrap}.chips span{padding:7px 10px;border:1px solid var(--border);border-radius:6px;font-size:11px}dialog{padding:0;border:1px solid #dce5de;box-shadow:0 30px 90px #1c332833;border-radius:13px;width:560px;max-width:calc(100vw - 30px);color:var(--ink)}dialog::backdrop{background:#20372c55;backdrop-filter:blur(3px)}.modalhead{display:flex;justify-content:space-between;align-items:center;padding:22px 25px;border-bottom:1px solid var(--border)}.modalhead h2{font:700 19px Manrope;margin:0}.modalbody{padding:23px 25px;max-height:70vh;overflow:auto}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:17px}.field{display:flex;flex-direction:column;gap:7px;font-size:11px;margin-bottom:17px}.field.full{grid-column:1/-1}.field input,.field select,.field textarea{width:100%;padding:11px;border:1px solid #dce4de;border-radius:6px;background:#fafcfa;font-size:12px;color:#536657}.field textarea{min-height:190px;font:11px/1.5 monospace}.field small{font-size:10px;color:#8c978f;line-height:1.6}.modalfoot{padding:16px 25px;border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:10px}.error{color:#ba5c53;font-size:11px;margin-bottom:12px}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%) translateY(80px);background:#254c39;color:white;padding:13px 22px;border-radius:8px;font-size:12px;transition:transform .25s;z-index:99;box-shadow:0 8px 25px #16392522}#toast.show{transform:translateX(-50%) translateY(0)}.mobilebtn{display:none}.welcome{background:linear-gradient(110deg,#f0f7f2,#fafcfb);padding:22px;border:1px solid #dfece2;border-radius:9px;margin-bottom:22px}.welcome h2{font-size:15px;margin:0 0 8px}.welcome p{font-size:11px;color:#789281;line-height:1.7;margin:0}.statusline{display:flex;align-items:center;gap:8px}.pagination{display:flex;gap:6px}.pagination button{border:1px solid var(--border);border-radius:4px;background:#fff;color:#8b978d;font-size:10px;padding:4px 7px}body.dark{--bg:#151c18;--white:#1d2720;--ink:#d6e2d9;--border:#2e3a31;--muted:#84958a}body.dark .card,body.dark aside,body.dark header{background:var(--white)}body.dark .btn,body.dark input,body.dark select,body.dark textarea{background:#26382c;color:#cbd9cf}body.dark th,body.dark .code{background:#233028}body.dark .donut:before{background:var(--white)}@media(min-width:1600px){main{padding-top:40px}.metric{min-height:158px}.chartwrap{height:230px}.chart{height:190px}}@media(max-width:1200px){aside{width:200px;padding-left:12px;padding-right:12px}.shell{margin-left:200px}main{padding:26px 24px}header{padding:0 24px}.spark{width:55px}.metric{padding:17px 15px}.metricvalue{font-size:25px}.maingrid{grid-template-columns:1.6fr 1fr}.catalog{grid-template-columns:repeat(2,1fr)}th,td{padding-left:15px;padding-right:15px}}@media(max-width:920px){.metrics{grid-template-columns:repeat(2,1fr)}.maingrid,.below{grid-template-columns:1fr}.serverstats{padding-bottom:6px}.nodegrid{grid-template-columns:1fr 1fr}.headright .badge{display:none}.pagehead{align-items:flex-start;gap:15px}.settingsgrid{grid-template-columns:1fr}.pagehead .actions{flex-wrap:wrap;justify-content:flex-end}}@media(max-width:650px){aside{transform:translateX(-100%);transition:transform .2s;width:232px}aside.open{transform:translateX(0);box-shadow:10px 0 80px #0002}.shell{margin-left:0}header{height:60px;padding:0 18px}.mobilebtn{display:inline-block}.headright{gap:7px}.crumb{gap:7px}.crumb>span{display:none}main{padding:23px 17px}.pagehead h1{font-size:23px}.pagehead p{max-width:210px;line-height:1.7}.actions .btn{font-size:10px;padding:8px}.metrics{gap:11px}.metric{min-height:127px}.metriclabel{font-size:11px}.metricvalue{font-size:24px}.spark{width:55px;bottom:33px}.metricfoot{font-size:9px}.catalog,.nodegrid{grid-template-columns:1fr}.toolbar{flex-wrap:wrap}.search{flex:1}.search input{width:100%}.formgrid{grid-template-columns:1fr}.field.full{grid-column:auto}footer{padding:15px 18px;gap:20px;line-height:1.7}.below{gap:15px}.headright .divider{display:none}.pagehead .actions{gap:5px}.donutbox{justify-content:center}}
.navscroll{overflow:auto;min-height:120px;flex:1}.sidebarbottom{flex-shrink:0}.schemafields{display:grid;grid-template-columns:1fr 1fr;gap:15px}.schemafields .field{margin:0}.schemafields .field:has(textarea){grid-column:1/-1}.schemafields textarea{min-height:110px}.schemafields label{font-size:11px}aside{padding-top:22px}.worksp{margin:22px 6px 16px}.engine{margin:12px 5px}.nav{padding-top:9px;padding-bottom:9px}.navlabel{margin-top:12px}.brand{font-size:21px}dialog{width:740px}.welcome{padding:28px}.error{white-space:pre-wrap;max-height:240px;overflow:auto}body.dark dialog{background:var(--white)}body.dark .worksp,body.dark .engine{border-color:var(--border)}body.dark .welcome,body.dark .notice{background:#253b2d;border-color:#37513e;color:#a4b8aa}body.dark .schemafields .field textarea{background:#202e25}body.dark .metricfoot{color:#9caf9f}@media(max-width:650px){.schemafields{grid-template-columns:1fr}.schemafields .field:has(textarea){grid-column:auto}}
.subscriber-page{max-width:680px;margin:5vh auto;padding:24px}.subscriber-page h1{font:750 28px Manrope;margin-top:35px}.private-qr{background:white;padding:12px;border-radius:9px;max-width:220px;margin:22px auto}.private-qr svg{width:100%;height:auto}
body.auth-screen{min-height:100dvh;background:radial-gradient(ellipse at 50% 10%,#e0f0e6 0,transparent 60%),#f5f7f6}body.auth-screen #sidebar,body.auth-screen #topbar{display:none}body.auth-screen .shell{margin-left:0;min-height:100dvh}body.auth-screen #content{display:grid;place-items:center;padding:48px 20px;flex:1}body.auth-screen footer{justify-content:center;background:transparent;border:0}body.auth-screen footer>span:first-child{display:none}.auth-card{width:min(100%,420px);background:var(--surface,#fff);border:1px solid var(--border,#dfe7e1);border-radius:20px;padding:36px;box-shadow:0 18px 64px #163b2010}.auth-brand{display:flex;align-items:center;gap:9px;color:inherit;text-decoration:none;font:800 24px Manrope,sans-serif;letter-spacing:-1px;margin-bottom:36px}.auth-brand-dot{color:#16845b;margin-left:-8px}.auth-card h1{font-size:28px;margin:0 0 8px}.auth-card>.subtitle{margin-bottom:28px;overflow-wrap:anywhere}.auth-card .field{margin:0 0 18px}.auth-card input{min-height:46px}.auth-card input:focus{outline:2px solid #16845b44;border-color:#16845b}.auth-submit{width:100%;justify-content:space-between;min-height:46px;margin-top:14px}.auth-options{border-top:1px solid var(--border,#e4ebe5);padding:13px 0;font-size:12px}.auth-options summary{cursor:pointer;color:var(--muted,#647568)}.auth-options[open] summary{margin-bottom:16px}.auth-footnote{font-size:11px;line-height:1.65;color:var(--muted,#718076);margin-top:22px}.auth-links{display:flex;gap:10px;margin-top:20px;flex-wrap:wrap}.auth-links .btn{font-size:10px;padding:7px 8px}.auth-card .error:empty{display:none}.auth-card .error{line-height:1.6;margin-bottom:18px}.auth-card button:disabled{opacity:.6;cursor:wait}body.dark.auth-screen{background:radial-gradient(ellipse at 50% 10%,#193f30 0,transparent 65%),#101a15}body.dark .auth-card{background:#17241c;border-color:#2b4031;color:#e4eee7}@media(max-width:480px){body.auth-screen #content{padding:28px 16px}.auth-card{padding:26px 22px;border-radius:16px}}

body.auth-screen .shell{display:flex;flex-direction:column}
