:root{--ink:#20334b;--muted:#65768b;--paper:#f4f7fb;--line:#dce4ef;--blue:#245bd3;--nav:#e9eff9;--white:#fff;font-family:"Segoe UI","Microsoft YaHei","PingFang SC",sans-serif;color:var(--ink);background:var(--paper);font-size:14px}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.55;cursor:wait}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #7fa5ff;outline-offset:3px}button{border:0;border-radius:6px;padding:10px 16px;font-weight:600}.primary{background:var(--blue);color:white}.secondary{background:white;border:1px solid var(--line);color:var(--ink)}.danger{background:#fbe9e9;color:#9e3030}.text-btn{background:transparent;color:var(--muted);padding:5px}.full{width:100%}[hidden]{display:none!important}.shell{display:grid;grid-template-columns:232px 1fr;min-height:100vh}.sidebar{background:var(--nav);padding:32px 20px;display:flex;flex-direction:column;border-right:1px solid var(--line)}.brand{display:flex;gap:10px;align-items:center;color:var(--ink);text-decoration:none;font-size:18px;font-weight:700;letter-spacing:-.4px}.brand-mark{background:var(--blue);color:white;border-radius:10px 3px 10px 3px;width:36px;height:38px;display:grid;place-items:center;font-size:25px}.brand small{display:block;font-size:11px;font-weight:400;color:var(--muted);letter-spacing:1px;margin-top:4px}nav{display:grid;gap:7px;margin-top:52px}.nav{display:flex;justify-content:space-between;padding:14px;background:transparent;text-align:left;color:#53677e}.nav span{font-size:18px}.nav.active{background:white;color:var(--blue);box-shadow:0 3px 14px #253c6710}.sidebar-foot{margin-top:auto;padding:40px 10px 0;color:var(--muted);font-size:12px}.sidebar-foot small{display:block;line-height:1.9;margin-top:16px}.indicator{display:inline-block;width:7px;height:7px;background:#94a3b8;border-radius:50%;margin-right:7px}.indicator.online{background:#279278}main{min-width:0;padding:0 44px}.topbar{height:78px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);font-size:12px;color:var(--muted)}.topbar>div{display:flex;gap:16px;align-items:center}.topbar button{padding:6px 13px}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:40px 0 30px}.subheading{color:var(--blue);font-size:13px;font-weight:600;margin:0 0 10px}h1{font-size:30px;letter-spacing:-.8px;font-weight:650;margin:0}h2{font-size:18px;font-weight:650}h3{font-size:16px}.page-heading p:last-child{color:var(--muted);margin:13px 0 0;line-height:1.7}.connection-strip{border:1px solid #cbd9ee;border-left:4px solid var(--blue);background:#edf3fd;padding:21px 25px;display:flex;align-items:center;gap:35px;margin-bottom:38px}.connection-strip>div{display:flex;gap:13px;align-items:center}.node-icon{font-size:26px;color:var(--blue)}.connection-strip strong{font-size:13px}.connection-strip small{display:block;margin-top:6px;color:var(--muted);font-size:11px}.connector{font-size:11px;color:#6484b4}.section-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:15px;gap:16px}.section-title h2{margin:0}.section-title label{display:flex;gap:8px;align-items:center;font-size:12px;color:var(--muted)}.count{display:inline-block;border-radius:4px;background:#e5ebf5;color:var(--muted);font-size:11px;padding:3px 7px;vertical-align:middle;margin-left:7px}.table-wrap{overflow:auto;background:white;border:1px solid var(--line);border-radius:7px}table{border-collapse:collapse;width:100%;font-size:12px;text-align:left}th{font-weight:500;color:var(--muted);background:#f8fafd;padding:14px 18px;white-space:nowrap}td{padding:17px 18px;border-top:1px solid #edf0f5;vertical-align:middle}td small{display:block;color:var(--muted);font-size:10px;margin-top:5px}td .url{display:block;max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.badge{display:inline-block;border-radius:4px;padding:4px 8px;white-space:nowrap;background:#edf1f5;color:#617186}.badge.running{background:#e6efff;color:#275ac4}.badge.succeeded{background:#e6f5ee;color:#247659}.badge.failed,.badge.needs_review{background:#fff0df;color:#9d5f13}.empty{padding:52px 20px;text-align:center;background:white;border:1px solid var(--line);border-top:0}.empty>span{font-size:35px;color:#94b2e4}.empty p,.empty-note,.hint{color:var(--muted);font-size:12px;line-height:1.8}.empty h3{margin:15px 0 8px}.empty button{margin-top:10px}.empty-note{padding:24px}.hint{max-width:75ch}.worker-row{display:flex;justify-content:space-between;background:white;border:1px solid var(--line);padding:22px;margin-bottom:12px;gap:15px}.worker-row small{display:block;color:var(--muted);margin-top:8px}.guide{background:white;border:1px solid var(--line);padding:25px;max-width:760px}.guide h3:not(:first-child){margin-top:30px}.guide p{line-height:1.9;color:var(--muted);max-width:70ch}.guide code{overflow-wrap:anywhere}code,pre{font-family:Consolas,monospace;font-size:12px}pre{background:#edf2f8;padding:18px;border-radius:6px;white-space:pre-wrap;overflow-wrap:anywhere;max-height:420px;overflow:auto;line-height:1.7}footer{margin:45px 0 25px;color:var(--muted);font-size:11px;display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:18px}dialog{border:1px solid var(--line);border-radius:12px;padding:30px;width:min(480px,calc(100% - 24px));color:var(--ink);box-shadow:0 25px 90px #20334b30;max-height:90vh;overflow:auto}dialog::backdrop{background:#20334b66;backdrop-filter:blur(3px)}dialog p{font-size:13px;line-height:1.8;color:var(--muted)}dialog label{display:block;font-size:12px;font-weight:600;margin:18px 0}input,textarea,select{border:1px solid #cbd6e4;border-radius:5px;background:white;color:var(--ink);padding:10px;width:100%;margin-top:7px}select{width:auto}dialog select{width:100%}.checkbox{display:flex;align-items:center;gap:8px}.checkbox input{width:auto;margin:0}.dialog-title{display:flex;align-items:center;justify-content:space-between}.dialog-kicker{font-size:12px;color:var(--blue)}.form-error{color:#b03838}#notice{background:#fff0df;color:#874e20;padding:14px 18px;margin-top:18px;border-radius:6px;font-size:13px}.wide{width:min(900px,calc(100% - 24px))}#detail-image{width:100%;border:1px solid var(--line)}.dialog-actions{display:flex;gap:12px;margin-top:20px;flex-wrap:wrap}#detail-meta{line-height:1.8;overflow-wrap:anywhere;color:var(--muted);font-size:12px}@media(min-width:1500px){main{padding:0 65px}}@media(max-width:1000px){.shell{grid-template-columns:190px 1fr}.sidebar{padding:25px 12px}main{padding:0 22px}.brand{font-size:15px}h1{font-size:26px}.connection-strip{gap:18px;padding:18px}.connector{display:none}}@media(max-width:700px){.shell{display:block}.sidebar{padding:15px;border-right:0;border-bottom:1px solid var(--line)}nav{display:flex;overflow:auto;margin-top:18px;gap:4px}.nav{white-space:nowrap;padding:10px;font-size:12px}.nav span{display:none}.sidebar-foot{display:none}main{padding:0 16px}.topbar{height:60px}#last-sync{display:none}.page-heading{margin:28px 0 24px;align-items:flex-start}h1{font-size:22px}.page-heading>button{white-space:nowrap;padding:10px}.connection-strip{gap:20px;padding:15px}.connection-strip strong{font-size:11px}.connection-strip small{font-size:10px}.node-icon{display:none}.section-title{flex-wrap:wrap}.section-title label{font-size:11px}.worker-row{flex-wrap:wrap}.topbar>span{font-size:11px}td,th{padding:12px}.page-heading p:last-child{font-size:12px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
