:root{--bg0:#04050A;--bg1:#0D1117;--bg2:#161B22;--bg3:#21262D;--bg4:#2D333B;--line:#30363D;--line2:#484F58;--t0:#FFFFFF;--t1:#E6EDF3;--t2:#B1BAC4;--t3:#7D8590;--accent:#818CF8;--accent-h:#6366F1;--success:#4ADE80;--warning:#FBBF24;--danger:#F87171;--info:#67E8F9;--android:#6EE7B7;--ios:#93C5FD;--muted2:#555C6B;}*{box-sizing:border-box;}html,body{margin:0;height:100%;}body{background:var(--bg0);color:var(--t1);font-family:"Inter","Segoe UI",sans-serif;font-size:13px;}.hidden{display:none !important;}button{font-family:inherit;cursor:pointer;}::-webkit-scrollbar{width:10px;height:10px;}::-webkit-scrollbar-thumb{background:var(--bg4);border-radius:5px;}::-webkit-scrollbar-thumb:hover{background:var(--line2);}::-webkit-scrollbar-track{background:transparent;}#app{display:flex;height:100vh;overflow:hidden;}.sidebar{width:240px;flex:0 0 240px;background:var(--bg1);border-right:1px solid var(--line);display:flex;flex-direction:column;padding:0 0 14px;}.brand{height:60px;display:flex;align-items:center;padding:0 18px;}.brand-name{font-family:'Space Grotesk',sans-serif;font-size:17px;font-weight:700;letter-spacing:-0.3px;line-height:1;}.brand-ads{color:var(--t0);}.brand-tool{color:var(--accent);}.sidebar-sep{height:1px;background:var(--line);}.nav{display:flex;flex-direction:column;margin-top:4px;}.nav-section{color:var(--t3);font-size:11.5px;font-weight:700;letter-spacing:0.2px;padding:14px 16px 8px;display:flex;align-items:center;gap:8px;}.nav-section::after{content:'';flex:1;height:1px;background:var(--line);}.nav-item{background:transparent;color:var(--t1);border:none;border-left:3px solid transparent;text-align:left;padding:9px 16px 9px 13px;font-size:13px;font-weight:500;display:flex;align-items:center;gap:10px;width:100%;transition:background .12s,color .12s;}.nav-item svg{flex:0 0 16px;opacity:.85;transition:opacity .12s,color .12s;}.nav-item:hover{background:var(--bg2);color:var(--t0);}.nav-item:hover svg{opacity:1;color:var(--accent);}.nav-item.active{background:linear-gradient(90deg,rgba(99,102,241,0.28),rgba(99,102,241,0.10));border-left-color:var(--accent);color:var(--t0);font-weight:600;}.nav-item.active svg{opacity:1;color:var(--accent);}.main{flex:1;display:flex;flex-direction:column;min-width:0;}.topbar{height:60px;flex:0 0 60px;display:flex;align-items:center;padding:0 24px;border-bottom:1px solid var(--line);background:var(--bg1);}.page-title{color:var(--t0);font-size:15px;font-weight:600;}.page-sub{color:var(--t3);font-size:12px;}.pills{margin-left:auto;display:flex;gap:8px;}.pill{display:inline-flex;align-items:center;gap:8px;font-size:11px;font-weight:500;padding:4px 10px;border-radius:13px;background:var(--bg3);border:1px solid var(--line);}.pill .dot{display:inline-block;width:7px;height:7px;border-radius:3px;background:var(--t3);flex:0 0 7px;}.pill .pill-txt{color:var(--t1);font-size:11px;}.pill.ok .dot{background:var(--success);}.pill.warn .dot{background:var(--warning);}.pill.err .dot{background:var(--danger);}.pill.off .dot{background:var(--t3);}.content{flex:1;overflow-y:auto;padding:20px 24px;}.card{background:var(--bg1);border:1px solid var(--line);border-radius:10px;padding:20px 16px;margin-bottom:14px;}.card-title{color:var(--t0);font-size:13px;font-weight:600;margin-bottom:2px;}.card-desc{color:var(--t3);font-size:12px;margin-bottom:12px;}.flabel{color:var(--t2);font-size:11px;font-weight:500;letter-spacing:0.5px;text-transform:uppercase;margin:12px 0 6px;}.flabel:first-child{margin-top:0;}.row{display:flex;gap:16px;}.row>*{flex:1;}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px;}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0;}input[type=number]{-moz-appearance:textfield;}input[type=text],input[type=password],input[type=number],input[type=date],textarea,select{width:100%;background:var(--bg2);border:1px solid var(--line2);border-radius:6px;color:var(--t0);font-size:13px;padding:8px 10px;font-family:inherit;}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--accent);}textarea{resize:vertical;min-height:80px;}select{cursor:pointer;}label.chk{display:inline-flex;align-items:center;gap:8px;color:var(--t1);font-size:13px;cursor:pointer;}.auth-remember{margin:14px 0 4px;}input[type=checkbox]{width:auto;cursor:pointer;accent-color:var(--accent);}.btn{background:var(--bg3);color:var(--t0);border:1px solid var(--line2);border-radius:6px;padding:8px 14px;font-size:13px;font-weight:500;transition:background .12s,border-color .12s;}.btn:hover{background:var(--bg4);border-color:#5A6270;}.btn:disabled{background:var(--bg2);color:var(--t3);border-color:var(--line);opacity:1;cursor:not-allowed;}.btn.primary{background:var(--accent);border-color:var(--accent-h);color:#fff;font-weight:600;}.btn.primary:hover{background:var(--accent-h);}.btn.primary:disabled{background:#2A2D3D;border-color:var(--line);color:var(--t3);}.btn.success{background:var(--success);border-color:#16A34A;color:#fff;font-weight:600;}.btn.success:hover{background:#16A34A;}.btn.danger{background:var(--danger);border-color:#B91C1C;color:#fff;font-weight:600;}.btn.danger:hover{background:#DC2626;}.btn.ghost{background:transparent;border:1px solid var(--line2);color:var(--t1);}.btn.ghost:hover{background:var(--bg2);color:var(--t0);}.btn.big{min-height:46px;font-size:14px;width:100%;}.btn-row{display:flex;gap:10px;margin-bottom:14px;}.seg{display:flex;background:var(--bg2);border:1px solid var(--line2);border-radius:8px;padding:2px;gap:2px;}.seg button{flex:1;background:transparent;border:none;color:var(--t2);padding:7px 14px;border-radius:5px;font-size:12px;font-weight:500;}.seg button:hover{color:var(--t0);}.seg button.active{background:var(--accent);color:#fff;font-weight:600;}.chips{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;}.chip{background:var(--bg3);border:1px solid var(--line2);color:var(--t1);border-radius:13px;padding:5px 12px;font-size:11px;font-weight:500;cursor:pointer;text-align:center;}.chip:hover{background:var(--bg4);}.chip.on{background:rgba(99,102,241,0.22);border-color:var(--accent);color:var(--t0);}.card-head{display:flex;align-items:flex-start;gap:6px;margin-bottom:10px;}.card-head .card-title,.card-head .card-desc{margin:0;}.card-collapse{margin-left:auto;background:transparent;border:none;color:var(--t3);font-size:14px;font-weight:600;width:22px;height:22px;line-height:1;}.card-collapse:hover{color:var(--t1);}.card.collapsed .card-body{display:none;}.lang-tag{display:flex;align-items:center;gap:6px;background:rgba(99,102,241,.07);border:1px solid rgba(129,140,248,.18);border-radius:6px;padding:5px 8px 5px 11px;min-width:0;}.lang-tag .name{flex:1;color:var(--t1);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.lang-tag input{width:44px;text-align:center;padding:2px 4px;font-size:12px;}.lang-tag .pct{color:var(--t3);font-size:12px;}.lang-tag .rm{background:none;border:none;color:var(--t1);font-size:15px;font-weight:700;padding:0 2px;line-height:1;}.lang-tag .rm:hover{color:var(--danger);}.lang-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin-top:8px;}.rs{position:relative;height:26px;cursor:pointer;user-select:none;touch-action:none;}.rs .track{position:absolute;top:50%;left:7px;right:7px;height:4px;transform:translateY(-50%);background:var(--bg3);border-radius:2px;}.rs .fill{position:absolute;top:50%;height:4px;transform:translateY(-50%);background:var(--accent);border-radius:2px;}.rs .handle{position:absolute;top:50%;width:14px;height:14px;transform:translate(-50%,-50%);background:var(--accent);border-radius:50%;box-shadow:0 1px 3px rgba(0,0,0,.4);}.mix{position:relative;user-select:none;touch-action:none;padding:0 2px;}.mix .labels,.mix .pcts{position:relative;height:18px;}.mix .labels span,.mix .pcts span{position:absolute;transform:translateX(-50%);font-size:11px;text-align:center;white-space:nowrap;}.mix .labels span{font-weight:700;}.mix .pcts span{color:var(--t3);font-size:10px;}.mix .bar{position:relative;height:14px;border-radius:5px;overflow:hidden;background:var(--bg3);margin:1px 0;}.mix .bar .mseg{position:absolute;top:0;height:100%;}.mix .div{position:absolute;top:50%;width:12px;height:12px;transform:translate(-50%,-50%);background:#fff;border-radius:50%;cursor:ew-resize;box-shadow:0 0 0 3px var(--bg1);z-index:2;}.mix .div::after{content:"";position:absolute;inset:3px;background:var(--bg1);border-radius:50%;}.mix .anchor{position:absolute;top:50%;width:8px;height:8px;transform:translate(-50%,-50%);background:var(--line2);border-radius:50%;}.toggle{position:relative;display:inline-block;width:44px;height:24px;flex:0 0 auto;cursor:pointer;}.toggle input{opacity:0;width:0;height:0;position:absolute;}.toggle .tslider{position:absolute;inset:0;background:#30363D;border:1px solid var(--line);border-radius:12px;transition:.15s;}.toggle .tslider::before{content:"";position:absolute;left:3px;top:2px;width:18px;height:18px;background:var(--t2);border-radius:50%;transition:.15s;}.toggle input:checked + .tslider{background:var(--accent);border-color:var(--accent);}.toggle input:checked + .tslider::before{transform:translateX(20px);background:#fff;}.toggle input:disabled + .tslider{opacity:.4;}.toggle-row{display:flex;align-items:center;gap:8px;}.htip{position:fixed;z-index:1100;width:340px;max-width:92vw;max-height:380px;background:#1a1a1d;border:1px solid var(--line);border-radius:10px;box-shadow:0 12px 40px rgba(0,0,0,.6);display:flex;flex-direction:column;}.htip .htip-head{display:flex;align-items:center;gap:8px;padding:11px 13px 7px;}.htip .htip-title{background:#2a2a2f;color:#fff;padding:5px 12px;border-radius:4px;font-size:12px;font-weight:600;}.htip .htip-title.heading{background:transparent;padding:0;font-size:13px;font-weight:700;}.htip .htip-what{color:#F4B400;font-size:12px;font-weight:600;}.htip .htip-body{padding:0 13px 13px;overflow-y:auto;font-size:12px;line-height:1.62;color:#fff;}.htip .htip-body b{color:#fff;}.htip .htip-arrow{position:absolute;width:0;height:0;border:8px solid transparent;}.htip .htip-arrow.left{left:-8px;border-right-color:#1a1a1d;border-left-width:0;}.htip .htip-arrow.right{right:-8px;border-left-color:#1a1a1d;border-right-width:0;}.ptypes{display:flex;gap:14px;}.ptype{display:flex;flex-direction:column;align-items:center;cursor:pointer;}.ptype-ic{width:60px;height:60px;border:1px solid var(--line);border-radius:10px;display:flex;align-items:center;justify-content:center;background:var(--bg2);color:var(--t3);transition:.12s;}.ptype:hover .ptype-ic{border-color:var(--accent);color:var(--t1);}.ptype.on .ptype-ic{border:2px solid var(--accent);background:rgba(129,140,248,.07);color:var(--accent);}.ptype-ic svg{width:30px;height:30px;}.ptype-box{width:14px;height:14px;border:1px solid var(--line);border-radius:3px;margin-top:8px;background:var(--bg2);position:relative;}.ptype.on .ptype-box{background:var(--accent);border-color:var(--accent);}.ptype.on .ptype-box::after{content:"";position:absolute;left:4px;top:1px;width:4px;height:7px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg);}.help-badge{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border:1px solid var(--t3);border-radius:50%;color:var(--t3);font-size:11px;font-weight:700;cursor:help;flex:0 0 auto;}.help-badge:hover{border-color:var(--accent);color:var(--accent);}.label-badge{display:flex;align-items:center;gap:6px;}body.body-grabbing *{cursor:grabbing !important;}table.tbl tr.drag-src{display:none;}table.tbl tr.drag-ph td{background:transparent !important;border-bottom:none !important;padding:4px 8px;}table.tbl tr.drag-ph:nth-child(even) td{background:transparent !important;}.tbl-ghost-wrap{position:fixed;z-index:1200;pointer-events:none;transform:scale(1.02);transform-origin:center center;box-shadow:0 16px 48px rgba(0,0,0,.6),0 4px 12px rgba(0,0,0,.4);border:1px solid rgba(129,140,248,.5);border-radius:6px;overflow:hidden;opacity:.96;will-change:top;}.showmore{background:transparent;border:none;color:var(--accent);font-size:12px;padding:6px 0;text-align:left;}.showmore:hover{color:var(--accent-h);}.stat-row{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:14px;}.stat{position:relative;background:var(--bg1);border:1px solid var(--line);border-radius:10px;padding:18px 18px 16px;overflow:hidden;}.stat::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--accent);}.stat .label{color:var(--t3);font-size:11px;}.stat .value{color:var(--t0);font-size:26px;font-weight:700;margin-top:4px;}.stat .sub{color:var(--muted2);font-size:11px;margin-top:2px;}.stat.green::before{background:var(--success);}.stat.blue::before{background:var(--info);}.stat.yellow::before{background:var(--warning);}.stat.red::before{background:var(--danger);}.tbl-wrap{background:var(--bg1);border:1px solid var(--line);border-radius:10px;overflow:hidden;}table.tbl{width:100%;border-collapse:collapse;font-size:12px;}table.tbl th{background:var(--bg2);color:var(--t3);font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:0.5px;text-align:left;padding:8px 10px;border-bottom:1px solid var(--line);}table.tbl td{padding:8px 10px;border-bottom:1px solid var(--line);color:var(--t1);font-size:12px;}table.tbl tr:nth-child(even) td{background:var(--bg2);}table.tbl tr:hover td{background:var(--bg3);}table.tbl tr.sel td{background:rgba(99,102,241,0.22);color:var(--t0);}table.tbl td.handle{color:var(--t3);cursor:grab;text-align:center;user-select:none;letter-spacing:-2px;}table.tbl td.handle:active{cursor:grabbing;}.toggle-list{display:flex;flex-wrap:wrap;gap:16px;}.badge{font-size:10px;padding:2px 8px;border-radius:6px;font-weight:600;}.badge.new{background:rgba(74,222,128,.13);color:var(--success);}.badge.used{background:rgba(125,133,144,.18);color:var(--t3);}.cl-android{color:var(--android);}.cl-ios{color:var(--ios);}.pager{display:flex;align-items:center;gap:10px;margin-top:12px;}.pager .info{color:var(--t3);font-size:12px;margin-right:auto;}.cols{display:flex;gap:18px;align-items:flex-start;}.cols .col-l{flex:6;min-width:0;}.cols .col-r{flex:4;min-width:0;}.logs{background:var(--bg0);border:1px solid var(--line);border-radius:8px;padding:10px 12px;font-family:"JetBrains Mono","Consolas",monospace;font-size:11px;height:380px;overflow-y:auto;}.logs .ln{padding:1px 0;white-space:pre-wrap;word-break:break-word;}.logs .ts{color:var(--t3);}.logs .mk-ok{color:var(--success);}.logs .mk-err{color:var(--danger);}.logs .mk-wn{color:var(--warning);}.logs .mk-nf{color:var(--info);}.logs .tx-ok{color:var(--success);}.logs .tx-err{color:var(--danger);}.logs .tx-ms{color:var(--t1);}.progress{height:6px;background:var(--bg3);border-radius:3px;overflow:hidden;margin-top:10px;}.progress>span{display:block;height:100%;background:var(--accent);width:0%;transition:width .2s;}.status-line{font-size:12px;margin-top:8px;}.balance{font-size:12px;font-weight:600;padding:4px 12px;border-radius:10px;background:rgba(74,222,128,.13);color:var(--success);display:inline-block;}.asn-list{max-height:170px;overflow-y:auto;background:var(--bg2);border:1px solid var(--line2);border-radius:6px;padding:4px;margin-top:6px;}.asn-list label{display:flex;align-items:center;gap:8px;padding:5px 8px;font-size:12px;border-radius:4px;}.asn-list label:hover{background:var(--bg3);}.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:var(--bg3);border:1px solid var(--line2);color:var(--t0);padding:11px 18px;border-radius:9px;font-size:13px;z-index:1000;box-shadow:0 8px 30px rgba(0,0,0,.5);}.toast.ok{border-color:var(--success);}.toast.err{border-color:var(--danger);}.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.6);display:flex;align-items:center;justify-content:center;z-index:900;}.modal{background:var(--bg1);border:1px solid var(--line);border-radius:12px;padding:22px;width:560px;max-width:92vw;max-height:86vh;overflow-y:auto;}.modal h3{margin:0 0 14px;color:var(--t0);font-size:15px;}.sel-list{max-height:46vh;overflow-y:auto;border:1px solid var(--line);border-radius:8px;}.sel-list label{display:flex;align-items:center;gap:10px;padding:8px 12px;font-size:12px;border-bottom:1px solid var(--line);}.sel-list label:last-child{border-bottom:none;}.muted{color:var(--t3);font-size:11px;}.help{color:var(--t3);font-size:11px;margin-top:4px;}.spacer{height:8px;}.range-tag{color:var(--accent);font-size:11px;font-weight:600;margin-left:8px;}.auth-body{display:flex;align-items:center;justify-content:center;min-height:100vh;background:radial-gradient(ellipse 60% 45% at 50% -5%,rgba(99,102,241,0.18),transparent 70%),radial-gradient(ellipse 45% 35% at 85% 110%,rgba(103,232,249,0.07),transparent 70%),var(--bg0);}.auth-wrap{width:380px;max-width:92vw;}.auth-brand{margin-bottom:20px;text-align:center;font-size:24px;}.auth-only,.guest-only{display:none;}body.authed .auth-only{display:flex;}body.guest .guest-only{display:flex;}a.nav-item{text-decoration:none;}body.guest .pills{display:none;}.topbar-auth{margin-left:auto;gap:8px;align-items:center;}.topbar-auth .btn{text-decoration:none;display:inline-flex;align-items:center;padding:7px 16px;}body.guest .content button,body.guest .content .btn,body.guest .content input,body.guest .content select,body.guest .content textarea,body.guest .content .toggle,body.guest .content .rs,body.guest .content .seg,body.guest .content label.chk,body.guest .content .ptype{cursor:not-allowed;}.auth-card{background:linear-gradient(180deg,rgba(255,255,255,0.025),rgba(255,255,255,0) 50%),var(--bg1);border:1px solid var(--line2);border-radius:16px;padding:32px 28px;box-shadow:0 0 0 1px rgba(99,102,241,0.08),0 18px 50px -16px rgba(0,0,0,0.75),0 0 60px -24px rgba(99,102,241,0.35);}.auth-card .card-title{text-align:center;margin-bottom:4px;font-size:17px;}.auth-card .card-desc{text-align:center;margin-bottom:20px;}.auth-card input{margin-bottom:4px;padding:10px 12px;border-radius:8px;transition:border-color .15s,box-shadow .15s;}.auth-card input:focus{box-shadow:0 0 0 3px rgba(99,102,241,0.22);}.auth-card .flabel{margin-top:14px;}.auth-submit{margin-top:20px;border-radius:8px;letter-spacing:0.2px;box-shadow:0 6px 18px -8px rgba(99,102,241,0.7);transition:background .15s,box-shadow .15s,transform .05s;}.auth-submit:hover{box-shadow:0 8px 22px -8px rgba(99,102,241,0.9);}.auth-submit:active{transform:translateY(1px);}.auth-error{color:var(--danger);font-size:12px;margin-top:10px;text-align:center;}.auth-switch{text-align:center;color:var(--t3);font-size:12px;margin-top:18px;}.auth-switch a{color:var(--accent);text-decoration:none;font-weight:500;}.auth-switch a:hover{text-decoration:underline;}.pwd-wrap{position:relative;}.pwd-wrap input{padding-right:42px;}.pwd-toggle{position:absolute;top:0;right:0;height:100%;width:40px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:var(--t3);padding:0;transition:color .15s;}.pwd-toggle:hover{color:var(--t0);}