:root{font-family:"Microsoft YaHei UI","PingFang SC",system-ui,sans-serif;color:#18324f;background:#f2f5f9;font-size:15px;line-height:1.6}*{box-sizing:border-box}body{margin:0}a{color:#245ac7;text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3,p{margin-top:0}h1{font-size:28px;line-height:1.35;margin-bottom:10px;letter-spacing:-.5px}h2{font-size:19px;margin-bottom:10px}h3{font-size:18px}p{max-width:78ch}.muted,small{color:#607187}.brand{display:block;font-size:25px;font-weight:750;letter-spacing:-.6px;color:#18324f}.brand span{display:block;font-size:12px;font-weight:400;letter-spacing:0;color:#607187}.brand:hover{text-decoration:none}.setup{max-width:690px;margin:48px auto;padding:0 24px}.setup>.brand{margin-bottom:28px}.panel{background:#fff;border:1px solid #dbe3ed;border-radius:12px;padding:28px}.setup .panel{padding:36px}.login{max-width:490px;margin-top:10vh}.step{color:#245ac7;font-size:13px;display:block;margin-bottom:16px}.checks{list-style:none;padding:12px 0;margin:16px 0 24px;border-top:1px solid #e5ebf3;border-bottom:1px solid #e5ebf3}.checks li{display:flex;align-items:center;gap:14px;margin:10px 0}.badge{display:inline-block;padding:3px 9px;font-size:12px;line-height:1.6;border-radius:5px;white-space:nowrap}.on{background:#e8f4ef;color:#16745d}.off{background:#fcecef;color:#a52b3c}label{display:block;font-size:14px;margin-bottom:18px}input{display:block;width:100%;height:42px;border:1px solid #b7c6d8;background:#fff;border-radius:6px;padding:8px 11px;color:#18324f;font:inherit;margin-top:7px}input:focus{outline:2px solid #245ac7;outline-offset:2px}small{display:block;font-size:12px;margin-top:6px}.pair{display:grid;grid-template-columns:1fr 1fr;gap:18px;min-width:0}.pair>*{min-width:0}button,.button{display:inline-flex;justify-content:center;align-items:center;background:#245ac7;color:white;border:1px solid #245ac7;border-radius:6px;font:inherit;font-weight:600;padding:10px 20px;cursor:pointer;min-height:42px}button:hover,.button:hover{background:#1946a2;text-decoration:none}.secondary{color:#245ac7;background:#fff;border-color:#b7c9e7}.secondary:hover{background:#edf3ff}.quiet{background:transparent;border:0;color:#607187;font-size:13px;padding-left:0}.quiet:hover{background:transparent;color:#245ac7}button:focus-visible,a:focus-visible{outline:3px solid #598be3;outline-offset:3px}.notice{padding:13px 16px;background:#e8f4ef;border-left:3px solid #16745d;color:#145a49;margin:0 0 22px;border-radius:4px}.notice.error{background:#fcecef;border-color:#b43c43;color:#962c39}.shell{display:flex;min-height:100vh}aside{width:226px;flex:none;padding:32px 24px;border-right:1px solid #dbe3ed;background:#fff;display:flex;flex-direction:column}nav{margin-top:48px;display:grid;gap:8px}nav a{padding:11px 13px;color:#607187;border-radius:6px}nav a.active{color:#245ac7;background:#edf3ff;font-weight:600}.sidebar-foot{margin-top:auto;padding-top:40px}.workspace{width:calc(100% - 226px);max-width:1600px;padding:42px 40px}header{display:flex;justify-content:space-between;align-items:center;gap:24px}header p{margin-bottom:0}.route{display:flex;align-items:center;gap:16px;padding:25px 0 30px;font-size:13px;color:#607187;overflow-wrap:anywhere}.route strong{color:#245ac7;font-weight:500}.route-line{height:1px;background:#b7c6d8;flex:1;max-width:90px}.section-title{display:flex;align-items:baseline;justify-content:space-between;gap:15px}.user-panel{padding-bottom:12px}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;text-align:left;font-size:14px}th{font-weight:500;color:#607187;background:#f7f9fc;font-size:12px}td,th{padding:16px 12px;border-bottom:1px solid #e5ebf3}td{vertical-align:middle}td:first-child{min-width:140px}td:nth-child(2){min-width:235px}td:nth-child(3){min-width:200px}td .badge{margin-top:8px}.compact{gap:10px}.compact label{font-size:12px;margin:0}.compact input{min-width:95px}.checkbox{display:flex;align-items:center;gap:7px;margin-bottom:10px;white-space:nowrap}.checkbox input{width:16px;height:16px;margin:0;accent-color:#245ac7}.lower-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:24px;margin-top:24px}.empty{text-align:center;padding:45px 0 50px;color:#607187}.empty h3{color:#18324f}footer{font-size:12px;color:#607187;padding:25px 0}section[id]{scroll-margin-top:24px}@media(max-width:1100px){.workspace{padding:32px 24px}.lower-grid{grid-template-columns:1fr}}@media(max-width:750px){.shell{display:block}aside{width:auto;display:block;padding:20px 24px;border-right:0;border-bottom:1px solid #dbe3ed}aside .brand span{display:none}nav{display:flex;gap:6px;margin-top:16px;flex-wrap:wrap}nav a{padding:7px 10px;font-size:13px}.sidebar-foot{display:flex;justify-content:space-between;align-items:center;margin-top:12px;padding:0}.workspace{width:100%;padding:24px 16px}header{align-items:flex-start}header .button{white-space:nowrap;padding:9px 12px}h1{font-size:25px}.panel,.setup .panel{padding:22px}.setup{margin:24px auto;padding:0 16px}.route{gap:8px}.route-line{min-width:10px}.pair{gap:12px}th,td{padding:12px 8px}}
select{width:100%;height:42px;border:1px solid #b7c6d8;border-radius:6px;padding:8px 11px;background:#fff;color:#18324f;font:inherit;margin-top:7px}input[type=file]{height:auto;max-width:270px;font-size:12px}.avatar{display:block;width:48px;height:40px;object-fit:contain;border:1px solid #dbe3ed;border-radius:7px;margin-bottom:8px;background:#f7f9fc}select:focus{outline:2px solid #245ac7;outline-offset:2px}
pre{font-family:Consolas,"Microsoft YaHei UI",monospace;font-size:13px;white-space:pre-wrap;overflow-wrap:anywhere;padding:14px 16px;background:#f2f5f9;border:1px solid #dbe3ed;border-radius:6px;margin:14px 0 22px}.setup h2{margin-top:26px}.notice p:last-child{margin-bottom:0}
