.pagination{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:9px;padding:18px 0 8px;margin-top:36px;border-top:1px solid var(--line)}
.page-link,.page-ellipsis,.page-jump button,.page-jump input{min-width:40px;height:40px;padding:0 13px;border:1px solid #cad8be;border-radius:12px;background:#fff;color:#4c5b47;font-size:13px;font-weight:600;display:inline-flex;align-items:center;justify-content:center;text-align:center;transition:background .18s,color .18s,border-color .18s,box-shadow .18s,transform .18s}
.page-link{cursor:pointer}.page-link:hover{background:#eef5e3;border-color:#a7bf90;color:#336023;transform:translateY(-2px);box-shadow:0 8px 18px #36542612}
.page-link.active{background:#33671f;border-color:#33671f;color:#fff;box-shadow:0 10px 22px #33671f26;transform:none}
.page-link.disabled{opacity:.5;pointer-events:none;transform:none;box-shadow:none}
.page-ellipsis{border-color:transparent;background:transparent;color:#75806f;cursor:default}
.page-jump{display:inline-flex;align-items:center;gap:8px;margin-left:8px}
.page-jump input{width:72px;cursor:text;color:#243126;font-weight:700;-moz-appearance:textfield}.page-jump input::-webkit-outer-spin-button,.page-jump input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.page-jump button{background:#eaf3de;border-color:#d4e3c1;color:#365f26}.page-jump button:hover{background:#dfedcf;color:#284b1c;transform:translateY(-2px)}
@media(max-width:640px){.pagination{gap:7px;margin-top:26px;padding-top:14px}.page-link,.page-ellipsis{min-width:34px;height:34px;font-size:11px;padding:0 9px}.page-jump{width:100%;justify-content:center;margin-left:0}.page-jump input{width:64px;height:34px;font-size:12px}.page-jump button{height:34px}}

body.router-loading #app-main{opacity:.3;transform:translateY(8px);filter:saturate(.8)}
body.router-loading::after{content:"";position:fixed;top:0;left:0;right:0;height:3px;z-index:999;background:linear-gradient(90deg,transparent,#33671f,transparent);animation:routerProgress 1s ease-in-out infinite}
#app-main{transition:opacity .18s ease,transform .18s ease,filter .18s ease}
#app-main.route-leave{opacity:.3;transform:translateY(8px);filter:saturate(.8)}
#app-main.route-enter{animation:routeEnter .36s cubic-bezier(.22,.61,.36,1)}
@keyframes routeEnter{from{opacity:0;transform:translateY(10px);filter:saturate(.8)}to{opacity:1;transform:translateY(0);filter:saturate(1)}}
@keyframes routerProgress{0%{transform:translateX(-100%)}50%{transform:translateX(100%)}100%{transform:translateX(-100%)}}

body.router-loading{cursor:progress}
body.router-loading #app-main{opacity:.55;filter:saturate(.85);transition:opacity .16s ease,filter .16s ease}
body.router-loading #app-main::before{content:"正在加载…";position:fixed;top:18px;left:50%;transform:translateX(-50%);z-index:999;padding:8px 13px;border-radius:999px;background:#33671f;color:#fff;font-size:11px;font-weight:700;box-shadow:0 10px 22px #33671f26}

.heat-tag{position:absolute;top:10px;right:10px;z-index:2;display:inline-flex;align-items:center;gap:5px;padding:5px 9px;border-radius:999px;background:#33671fd9;color:#fff;font-size:10px;font-weight:800;letter-spacing:.4px;text-shadow:0 1px 3px #0006;backdrop-filter:blur(6px);box-shadow:0 5px 14px #213d1373}
@media(max-width:640px){.heat-tag{top:8px;right:8px;padding:4px 7px;font-size:9px}}
