
:root{--ink:#172e29;--muted:#76837e;--green:#226a53;--green-soft:#eaf4ee;--line:#e4e9e5;--paper:#f5f7f4;--amber:#a56a24;--red:#b24d48;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei",sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{opacity:.45;cursor:not-allowed}a{color:inherit;text-decoration:none}[hidden]{display:none!important}button:focus-visible,a:focus-visible{outline:3px solid #8ac8a2;outline-offset:3px}.sidebar{position:fixed;inset:0 auto 0 0;width:226px;background:#133d36;color:#d0e0d6;padding:34px 20px;display:flex;flex-direction:column;z-index:20}.brand{display:flex;align-items:center;gap:12px;color:#fff;font-size:21px;font-weight:650;padding:0 6px}.brand-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:#d3e7b0;color:#173f34;font-size:23px}.brand small{display:block;font-size:8px;letter-spacing:1.4px;font-weight:500;margin-top:6px;color:#a7bdb0}.nav-label{font-size:11px;color:#8ca89a;margin:47px 14px 14px;letter-spacing:1px}.nav{display:flex;width:100%;border:0;background:none;color:#bdd0c3;align-items:center;gap:13px;padding:15px 16px;margin:5px 0;border-radius:9px;font-size:14px;text-align:left}.nav span{font-size:22px;width:22px;text-align:center}.nav.active{background:#2c5849;color:#f3f7e9}.nav:hover{background:#285247}.sidebar-foot{margin-top:auto;padding:16px 10px 0;border-top:1px solid #34594c;letter-spacing:1px;font-size:11px}.version{display:block;color:#8dab99;font-size:10px;letter-spacing:.2px;margin-top:12px}.status-dot{display:inline-block;background:#c7df9e;width:6px;height:6px;border-radius:50%;margin-right:8px}main{margin-left:226px}.topbar{height:78px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;padding:0 42px;background:#fafbf8}.crumb{font-size:12px;color:var(--muted)}.crumb span{margin:0 15px;color:#bac4bc}.crumb b{font-weight:500;color:#384c41}.user{display:flex;align-items:center;gap:9px;font-size:12px}.avatar{display:grid;place-items:center;width:29px;height:29px;background:#e2e9db;color:#456149;border-radius:50%;font-size:11px}.content{max-width:1440px;margin:0 auto;padding:38px 42px 50px}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:29px}.eyebrow{font-size:9px;font-weight:600;color:#718674;letter-spacing:2px;margin:0 0 12px}h1{font-size:29px;letter-spacing:-.7px;margin:0 0 10px;font-weight:650}h2{font-size:15px;margin:0;font-weight:600}h3{font-size:16px;font-weight:550}.sub{font-size:13px;color:var(--muted);margin:0;line-height:1.8}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;background:white;border:1px solid #dce4dc;border-radius:7px;padding:11px 17px;font-size:12px;white-space:nowrap;min-height:39px;font-weight:550}.btn:hover{background:#edf3eb}.btn.primary{background:var(--green);border-color:var(--green);color:#fff;box-shadow:0 3px 6px #113b2410}.btn.primary:hover{background:#18523e}.btn.danger{color:var(--red);border-color:#e6c6c2}.btn.small{font-size:11px;padding:7px 11px;min-height:31px}.actions{display:flex;align-items:center;gap:10px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:27px}.stat{background:#fff;border:1px solid var(--line);border-radius:10px;padding:23px 22px}.stat>span{display:block;color:#687c6d;font-size:12px}.stat strong{display:block;font-size:34px;font-weight:550;letter-spacing:-1px;margin:18px 0 13px;font-variant-numeric:tabular-nums}.stat small{font-size:10px;color:#8d998f}.dot{display:inline-block;width:5px;height:5px;border-radius:50%;vertical-align:middle;margin-right:5px}.dot.green{background:#579a70}.dot.amber{background:#c69a56}.panel{background:white;border:1px solid var(--line);border-radius:10px;overflow:hidden}.panel-toolbar{display:flex;align-items:center;justify-content:space-between;padding:17px 21px;border-bottom:1px solid var(--line);gap:14px;min-height:68px}.wrap{flex-wrap:wrap}.tabs{display:flex;gap:22px}.tabs button{background:none;border:0;color:#889288;padding:8px 0;position:relative;font-size:12px}.tabs button.selected{color:var(--ink);font-weight:600}.tabs button.selected:after{content:"";position:absolute;bottom:-19px;height:2px;background:var(--green);left:0;right:0}.icon-btn{border:1px solid var(--line);border-radius:6px;width:31px;height:31px;color:#6e7b70;background:white;font-size:19px;display:grid;place-items:center}.panel-footer{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding:14px 21px;color:#8a968c;font-size:10px;gap:12px}.live{display:flex;align-items:center;color:#6c8a6f;font-size:10px;gap:3px}.empty{text-align:center;padding:65px 24px;color:var(--muted)}.empty>span{font-size:32px;color:#9bab99}.empty h3{color:#60735f;margin-top:17px;margin-bottom:10px}.empty p{font-size:12px;line-height:1.8;margin:0}.footnote{font-size:10px;color:#8b988b;line-height:1.8;margin:18px 3px}.task-item{display:grid;grid-template-columns:minmax(180px,1.2fr) 95px minmax(150px,1fr) 96px 24px;align-items:center;gap:20px;border:0;border-bottom:1px solid #eef1ed;background:#fff;width:100%;padding:23px 22px;text-align:left;color:inherit}.task-item:last-child{border-bottom:0}.task-item:hover{background:#fafcf8}.task-name{font-weight:550;font-size:13px;display:flex;align-items:center;gap:11px}.task-glyph{display:grid;place-items:center;width:36px;height:38px;border-radius:8px;background:#f1f5ed;color:#6b8767;font-size:20px}.task-meta{font-size:10px;color:#8a968a;margin-top:6px;font-weight:400}.badge{display:inline-flex;align-items:center;justify-content:center;width:max-content;border-radius:5px;background:#f0f3ee;color:#7a8777;font-size:10px;padding:5px 8px;white-space:nowrap}.badge.running,.badge.done,.badge.idle,.badge.ok{color:#327153;background:#e9f4ec}.badge.paused,.badge.uncertain,.badge.partial,.badge.flood,.badge.review,.badge.unknown{color:#a17532;background:#fbf3e5}.badge.failed,.badge.fail,.badge.blocked,.badge.invalid,.badge.banned,.badge.restricted{color:#b15b55;background:#fbeeea}.progress-line{height:4px;background:#edf0e9;border-radius:10px;overflow:hidden;margin-top:9px}.progress-line>i{display:block;background:#679c78;height:100%}.progress-label{display:flex;justify-content:space-between;color:#8a9689;font-size:10px}.task-totals{font-size:11px;line-height:1.9;color:#748170}.task-totals b{color:#3f6649;font-weight:500}.arrow{color:#a4afa1}.notice{display:flex;align-items:center;gap:10px;font-size:12px;line-height:1.8;border:1px solid #e5dfbf;background:#faf8ec;color:#8d773d;border-radius:8px;padding:12px 16px;margin-bottom:22px}.notice>span{font-size:18px}.search{display:flex;align-items:center;gap:8px;color:#929c8b}.search input{border:0;outline:0;font-size:12px;min-width:160px;max-width:220px;background:transparent}.search:focus-within{outline:2px solid #c8d9c4;outline-offset:5px;border-radius:2px}select,input[type=text],input[type=number],input[type=file],textarea{border:1px solid #dbe2d7;border-radius:6px;background:white;color:var(--ink);padding:10px 11px;outline-color:#72a67a;font-size:12px}select{max-width:250px}textarea{resize:vertical;line-height:1.7;width:100%}input[type=checkbox]{accent-color:var(--green);width:15px;height:15px}.batch-bar{display:flex;gap:10px;align-items:center;padding:13px 21px;border-bottom:1px solid var(--line);background:#fbfcf9;color:#7d8c79;font-size:11px}.batch-bar>span{margin-right:auto}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;font-size:12px}th{text-align:left;color:#83917d;font-size:10px;font-weight:500;background:#fafbf8;padding:14px 19px;white-space:nowrap}td{border-top:1px solid #edf0e9;padding:18px 19px;line-height:1.7}td small{display:block;color:#8b9787;font-size:10px}.table-empty{text-align:center;padding:45px;color:#87937f}.direct{font-size:11px;color:#b08547}.proxy-name{font-size:11px;color:#42745a}.link-btn{border:0;background:none;color:#447853;font-size:11px;padding:5px}.proxy-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.proxy-card{padding:23px}.proxy-card-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.proxy-card h2{font-size:15px}.proxy-host{font-family:ui-monospace,monospace;font-size:13px;overflow-wrap:anywhere}.proxy-card p{font-size:11px;color:#82907c;line-height:1.7}.proxy-footer{display:flex;align-items:center;gap:8px;flex-wrap:wrap;border-top:1px solid var(--line);margin-top:22px;padding-top:15px}.proxy-footer>span{margin-right:auto;font-size:11px;color:#8d794d}.back-link{border:0;background:none;font-size:11px;color:#77906e;padding:0;margin-bottom:25px}.detail-stats{grid-template-columns:repeat(5,1fr)}.detail-stats .stat{padding:19px}.detail-stats .stat strong{font-size:28px}.panel-title{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:20px 22px;border-bottom:1px solid var(--line)}.muted{font-size:10px;color:#89937e}.export-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;padding:20px}.export-btn{background:#f8faf5;border:1px solid #e6ebdf;border-radius:7px;padding:15px 13px;text-align:left;color:#536a48;font-size:12px}.export-btn:hover{background:#ecf2e4}.export-btn span{display:block;font-size:10px;color:#8b987d;margin-top:8px}.result-panel{margin-top:23px}.detail-text{max-width:450px;overflow-wrap:anywhere;font-size:11px;color:#84907c}dialog{border:1px solid #dbe4d4;border-radius:13px;padding:0;width:660px;max-width:calc(100% - 28px);max-height:90dvh;box-shadow:0 25px 90px #0b241c33;color:var(--ink)}dialog::backdrop{background:#09221b66;backdrop-filter:blur(3px)}.modal-heading{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid var(--line)}#modal-body{padding:23px 24px}form{display:flex;flex-direction:column;gap:18px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.field{display:flex;flex-direction:column;gap:8px;font-size:12px;color:#53694c}.field small,.form-help{font-size:10px;color:#88967e;line-height:1.7;margin:0}.field input,.field select{width:100%;max-width:none}.form-footer{border-top:1px solid var(--line);padding-top:18px;display:flex;justify-content:flex-end;gap:10px}.check-list{display:flex;flex-wrap:wrap;gap:10px;max-height:150px;overflow:auto}.check-label{display:flex;align-items:center;gap:7px;font-size:11px;background:#f5f8f0;padding:7px 9px;border-radius:5px}.auth-gate{background:#eef3e7;border:1px solid #dbe5cf;border-radius:10px;padding:22px;display:flex;align-items:center;gap:18px;margin-bottom:30px}.auth-gate p{font-size:12px;color:#75876a;line-height:1.8;margin:8px 0 0}.auth-gate>.btn{margin-left:auto}.gate-icon{font-size:26px;color:#6c8860}.auth-gate h2{font-size:15px}#toast{position:fixed;bottom:28px;left:50%;transform:translateX(-50%);max-width:90%;background:#203c2c;color:#f5f8ee;box-shadow:0 6px 30px #142b2622;border-radius:9px;padding:13px 21px;font-size:12px;z-index:1000;line-height:1.8;white-space:pre-line}#toast.error{background:#864d44}.result-alert{padding:12px;border-radius:6px;background:#f5f7ee;font-size:12px;line-height:1.8;white-space:pre-wrap}.busy-note{font-size:10px;color:#8d927d}.mobile-label{display:none}@media(min-width:1500px){.content{padding-top:48px}}@media(max-width:1100px){.content{padding:28px}.topbar{padding:0 28px}.sidebar{width:196px;padding:30px 15px}main{margin-left:196px}.stat{padding:20px 16px}.task-item{grid-template-columns:minmax(130px,1fr) 80px minmax(100px,1fr) 20px;gap:15px}.task-totals{display:none}.detail-stats{grid-template-columns:repeat(3,1fr)}}@media(max-width:720px){.sidebar{inset:auto 0 0 0;width:auto;height:calc(65px + env(safe-area-inset-bottom));padding:0 10px env(safe-area-inset-bottom);background:#fafcf7;border-top:1px solid #dfe7d7;display:block;color:var(--ink)}.sidebar .brand,.nav-label,.sidebar-foot{display:none}.sidebar nav{height:65px;display:flex;justify-content:space-around;align-items:center}.nav{display:flex;flex-direction:column;gap:3px;width:100px;font-size:10px;padding:6px 10px;margin:0;border-radius:8px;color:#8a9781}.nav span{font-size:20px}.nav.active{background:#e8f0df;color:#35693e}.nav:hover{background:#eff5e8}main{margin-left:0;padding-bottom:80px}.topbar{height:58px;padding:0 19px}.crumb{font-size:10px}.crumb span{margin:0 9px}.user{font-size:10px}.content{padding:26px 17px}.page-heading{gap:10px;align-items:flex-start;margin-bottom:23px}.page-heading>.btn{margin-top:20px;font-size:11px;padding:10px 11px}.page-heading>.actions{flex-direction:column;gap:7px}.page-heading>.actions .btn{font-size:10px;padding:8px 10px;min-height:32px}.eyebrow{font-size:8px;letter-spacing:1.4px;margin-bottom:9px}h1{font-size:24px}.sub{font-size:11px;max-width:250px}.stats{grid-template-columns:repeat(2,1fr);gap:11px;margin-bottom:20px}.stat{padding:17px}.stat>span{font-size:11px}.stat strong{font-size:29px;margin:13px 0 10px}.stat small{font-size:9px}.panel-toolbar{padding:14px 16px;min-height:60px}.tabs{gap:20px}.tabs button{font-size:11px}.tabs button.selected:after{bottom:-16px}.task-item{padding:19px 15px;grid-template-columns:minmax(130px,1fr) 68px 14px;gap:9px}.task-item .progress{grid-column:1/3;grid-row:2;margin-left:47px}.task-glyph{width:33px;height:35px;font-size:18px}.task-name{font-size:12px;gap:10px}.task-meta{font-size:9px}.badge{font-size:9px;padding:5px 7px}.arrow{grid-column:3;grid-row:1}.panel-footer{padding:12px 15px;font-size:9px}.footnote{font-size:9px}.proxy-grid{grid-template-columns:1fr}.auth-gate{padding:17px;gap:10px;flex-wrap:wrap}.auth-gate .gate-icon{display:none}.auth-gate .btn{margin-left:0;font-size:11px}.auth-gate p{font-size:11px}.auth-gate h2{font-size:14px}.notice{font-size:11px;padding:11px 13px}.batch-bar{padding:11px 14px;gap:6px}.batch-bar .btn{font-size:10px;padding:6px 8px}td,th{padding:13px 12px;font-size:11px}.table-wrap table{min-width:600px}.detail-stats{grid-template-columns:repeat(3,1fr)}.detail-stats .stat{padding:14px 11px}.detail-stats .stat strong{font-size:23px}.detail-stats .stat small{display:none}.export-grid{grid-template-columns:repeat(2,1fr);padding:14px;gap:10px}.panel-title{padding:16px;display:block}.panel-title .muted{display:block;line-height:1.7;margin-top:7px}.panel-toolbar .actions{flex-wrap:wrap;gap:13px}.form-row{grid-template-columns:1fr 1fr;gap:12px}#modal-body{padding:20px}.modal-heading{padding:18px 20px}.field{font-size:11px}dialog{max-height:88dvh}#toast{bottom:85px}.search input{min-width:135px;max-width:180px}}
