body{color:#34435a}button:disabled{cursor:wait}a{color:#177de3}.sidebar{padding-top:20px}.brand{padding:14px 20px 30px}.brand img{width:38px}.sidebar nav{display:grid;gap:5px;padding:10px 14px}.sidebar nav a{padding:12px 18px;border-radius:7px;color:#7b889d}.sidebar nav a.active{background:#eaf3ff;color:#1683ee;font-weight:600}.side-footer{padding:20px;color:#8b97a8}.topbar{padding:0 28px}.topbar h1{font-size:16px;margin:0}.top-right{gap:14px}.server-main{padding:28px;min-height:calc(100vh - 76px)}.page-heading{margin-bottom:24px}.page-heading p{margin-top:6px;color:#8591a3}.panel{margin-bottom:22px}.panel-title{padding:18px 22px;display:flex;justify-content:space-between;gap:16px;align-items:center}.panel-title h2{margin:0;font-size:15px}.body{padding:22px}.toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.toolbar input,.toolbar select{max-width:230px}.table-scroll{overflow:auto}table{width:100%;border-collapse:collapse;white-space:nowrap}th,td{padding:14px 17px;border-bottom:1px solid #edf0f5;text-align:left;vertical-align:middle}th{background:#fafbfd;color:#8b97a7;font-size:12px}td{font-size:13px}.sub{display:block;font-size:11px;color:#8b97a7;margin-top:4px}.actions{display:flex;gap:7px;flex-wrap:wrap}.btn{border:1px solid transparent;border-radius:5px;padding:9px 15px;background:#fff;display:inline-flex;align-items:center;justify-content:center;gap:6px}.btn.blue{background:#188af0;color:white}.btn.outline{border-color:#dbe3ed;color:#56708b}.btn.small{padding:5px 10px;font-size:12px}.btn.danger{color:#c95353;border-color:#efd1d1}.notice{padding:15px 19px;border-radius:7px;background:#edf6ff;color:#4b6e95;margin-bottom:20px;line-height:1.8}.error{background:#fff0ef;color:#b74848}.success{background:#eaf9f3;color:#218f6a}.empty{text-align:center;padding:42px;color:#8a98ab}.badge{display:inline-block;border-radius:4px;padding:3px 8px;font-size:11px;background:#eaf3ff;color:#2c83db}.badge.green{background:#e7f8f0;color:#24916b}.badge.orange{background:#fff3e6;color:#bb812f}.badge.gray{background:#eef1f5;color:#8a95a5}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-bottom:24px}.metric{background:white;border:1px solid #e8edf5;border-radius:9px;padding:23px}.metric span{color:#8794a6}.metric strong{display:block;font-size:30px;font-weight:600;color:#355170;margin:8px 0}.metric small{color:#a2adbb}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.form-grid label{display:flex;flex-direction:column;gap:7px;color:#63768e}.form-grid input,.form-grid select{width:100%}.wide{grid-column:1/-1}.check{display:flex!important;flex-direction:row!important;align-items:center;gap:8px!important}.check input{width:16px}.form-error{color:#bb4343;margin-bottom:15px;white-space:pre-wrap}.modal-mask{position:fixed;inset:0;background:#152b4966;display:grid;place-items:center;padding:20px;z-index:100}.server-dialog{width:min(800px,100%);max-height:90vh;overflow:auto;background:white;border-radius:12px;box-shadow:0 24px 90px #142b4944}.server-dialog>header{padding:20px 25px;border-bottom:1px solid #e9eef5;display:flex;align-items:center;justify-content:space-between}.server-dialog h2{margin:0;font-size:18px}.server-dialog form,.dialog-body{padding:24px}.form-footer{display:flex;gap:10px;justify-content:flex-end;margin-top:25px}.login-shell{min-height:100vh;display:grid;place-items:center;background:radial-gradient(ellipse at top left,#dcebff,transparent 60%),#f4f7fc;padding:20px}.login-card{width:min(420px,100%);padding:38px;background:white;border:1px solid #e1e9f4;border-radius:16px;box-shadow:0 20px 80px #507cb71a}.login-card img{width:48px}.login-card h1{font-size:24px;margin-bottom:8px}.login-card p{color:#8c9aaf;margin-bottom:27px}.login-card label{display:grid;gap:9px;margin:20px 0;color:#62758e}.login-card .btn{width:100%;margin-top:8px}.login-card small{display:block;color:#98a5b6;margin-top:22px;line-height:1.8}.network-layout{display:grid;grid-template-columns:330px minmax(0,1fr);gap:20px}.map-canvas{width:100%;height:420px;background:#f4f8f5;border:1px solid #dce8df;border-radius:8px}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 24px}.detail-grid>div{display:flex;justify-content:space-between;gap:20px;border-bottom:1px solid #edf1f6;padding:14px 0}.detail-grid span{color:#8795a8}.detail-grid strong{font-weight:500;overflow-wrap:anywhere}.reasons{padding:0;list-style:none}.reasons li{padding:12px 0;border-bottom:1px solid #edf1f6;display:flex;justify-content:space-between;gap:20px}.pager{padding:18px;display:flex;gap:15px;justify-content:flex-end;align-items:center}.server-code{font:12px ui-monospace,monospace;word-break:break-all;white-space:normal}.statusline{color:#8597ad;font-size:12px}.toast{position:relative;margin:10px;padding:14px 20px;background:#234b76;color:white;border-radius:7px;box-shadow:0 6px 24px #263e5e22}#toast-root{position:fixed;right:20px;bottom:20px;z-index:200;max-width:460px}.toast.error{background:#a94f4f;color:white}textarea{width:100%;resize:vertical;line-height:1.7}.muted{color:#96a2b3}.server-footer{padding:20px 28px;color:#9ba6b5;text-align:right;font-size:11px}.loading{padding:60px;text-align:center;color:#8599b2}
@media(max-width:1000px){.metrics{grid-template-columns:repeat(2,1fr)}.network-layout{grid-template-columns:1fr}.sidebar{width:185px}.main-shell{margin-left:185px}}@media(max-width:650px){.sidebar{position:static;width:auto;height:auto;padding:8px}.brand{padding:10px}.sidebar nav{display:flex;overflow:auto;padding:3px}.sidebar nav a{white-space:nowrap;padding:9px}.side-label,.side-footer{display:none}.main-shell{margin-left:0}.server-main{padding:16px}.topbar{padding:0 16px}.top-right .statusline{display:none}.metrics{gap:10px}.metric{padding:16px}.form-grid,.detail-grid{grid-template-columns:1fr}.map-canvas{height:300px}.wide{grid-column:auto}}

.brand div{display:block!important;min-width:0}.brand strong{font-size:16px;white-space:nowrap}.brand small{display:block;font-size:10px}.brand{gap:10px}

.job-detail{white-space:pre-wrap;overflow-wrap:anywhere;max-height:65vh;overflow:auto;background:#f5f8fc;padding:16px;border-radius:8px;font-size:13px;}
